我正在使用React / Webpack / ES6制作应用程序,我遇到了问题。
我正在尝试使用Web worker来进行API调用。我有一个功能性的线程池来帮助我的网络工作者,并且没有任何问题。
问题是我正在使用webpack worker-loader来创建我的worker,如果我想导入这样的外部库:
import MyLibrary from './path/to/MyLibrary';
我收到了这样的错误:
Uncaught ReferenceError: window is not defined
我无法使其发挥作用,但根据documentation,我认为我做得对。有什么想法吗?
答案 0 :(得分:1)
嗯,您没有与switch myNumber {
case 1...2:
myFavoriteNumbers += [myNumber] // do this for case 1 and case 2
switch myNumber {
case 1:
print("my number is number 1") // do this only for case 1
default:
print("this is number 2") // do this only for case 2
}
case 3...4:
myLeastFavoriteNumbers += [myNumber] // do this for case 3 and case 4
switch myNumber {
case 3:
print("I don't like number 3") // do this only for case 3
default:
print("Number Four") // do this only for case 4
}
default:
print("Default")
}
共享任何可能存在问题的代码。通常,JavaScript错误对象包含有关抛出错误的行和文件的信息。
尽管如此,我会猜测显而易见的可能性:您在MyLibrary
中使用window
。 未在网络工作者中定义MyLibrary
全局属性!对于必须与工作程序兼容的代码,请使用window
。它也可以在普通的浏览器环境中使用 - self
因此优于self
。
作为旁注,也不要依赖window
未在worker中定义 - 某些库定义它来处理兼容性问题。我也这样做,有时候:
window
如果您不想或不想编辑库,这也是可接受的解决方法。我对make jQuery work in web workers做了更多这样的事情。
答案 1 :(得分:0)