值不是序列 Safari 异常

Value is not a sequence Safari exception

我在代码库中的任何 console.log 语句中遇到此错误。这仅影响 Mac 10.16.6

上的 Safari 11.0 (12604.1.38.1.7)

我该如何解决这个问题以及这是怎么发生的?

您需要禁用 "WebDriver" 扩展程序。

我遇到了同样的问题,我的堆栈跟踪包括一个名为 "Script element" 的资源,它正在调用:

b.initMessageEvent("safaridriver.message", !1, !1, a, window.location.origin, "0", window, null);

也许有一个 SafariDriver 更新可以解决这个问题?

这里的主要答案,让我误入歧途。

一些注意事项:

  • 我的 console.log 在 Safari 12.0.3 中运行良好,没有任何问题
  • "Value is not a sequence" 的原始错误可能有多种不同的原因
  • 我发现我收到错误是因为我的 self.postMessage() 有两个参数而不是一个
    • TypeScript 认为 self.postMessage() 应该有两个参数
    • Safari 抛出错误,因为我的第二个 postMessage 参数为空

我的代码是:

self.postMessage(data,null)

现在我的工作代码是:

const selfie: Worker = self as any;

selfie.postMessage(data)

我发现我的答案是相关的,因为其他人会使用 TypeScript 并认为 self.postMessage() 需要有两个参数......然后如果第二个参数为空,Safari 就会中断,就像几篇在线文章推荐的那样使用。