如何在Worker中捕获DataCloneError?

问题描述 投票:0回答:1

我有一个HTML5工作程序,它使用postMessage发送值。有时(例如,如果结果是一个函数),代码将引发异常:

DataCloneError:无法克隆对象。

所以我试图捕捉异常:

try {
  self.postMessage (result);
}
catch (ex) {
  if (ex instanceof DataCloneError)
    self.postMessage (result.toString());
  else
    throw ex;
}

但是这会引发以下异常:

ReferenceError:未定义DataCloneError

我很困惑。如何捕捉DataCloneError

html web-worker
1个回答
0
投票

您收到的错误是DOMException接口的一个实例。

要知道它是哪个DOMException,可以检查其name属性。DATA_CLONE_ERROR之一是"DataCloneError"

try {
  postMessage( () => {} , '*' );
}
catch( err ) {
  console.log( err.name === "DataCloneError" );
}
© www.soinside.com 2019 - 2024. All rights reserved.