我试图在脚本继续之前遍历应该在Window中的所需属性名称数组。但是,当我在使用'in'关键字时使用变量而不是显式文本时,JavaScript似乎不喜欢它。
TypeError:无法使用'in'运算符来搜索“ServiceWorker” 窗口
我做错了什么,或者这只是它的工作方式?
const waitForScripts = () => {
return new Promise(function(resolve, reject) {
var required = ["ServiceWorker"];
var loaded = 0;
while (loaded <= required.length + 1) {
if (loaded == required.length) {
resolve();
}
for (var i = 0; i < required.length; i++) {
var search = required[i];
if (search in 'window') {
loaded++;
}
}
}
});
};
答案 0 :(得分:4)
您在字符串上使用了in
运算符,您想在变量窗口
if (search in window) {
loaded++;
}
答案 1 :(得分:1)
要小心那个 e0 <= '0';
e1 <= '1';
-- ^
-- |
循环。如果由于某种原因,其中一个属性名称不在窗口对象上,则最终会出现无限循环,因为加载不会增加。