【发布时间】:2021-09-17 20:32:13
【问题描述】:
我不知道问题是否是异步的,但我的代码在这里不起作用 如果 dat().then 中的 if 函数为假,我如何让它在 else 端每秒重新检查一次?目前我在 settimeout 中的 dat() 函数不起作用。我没想到它会起作用
var dat = async () => {
await document.querySelector("body").click();
}
dat().then(() => {
if(document.querySelector("body").className.indexOf("position") == -1){
console.log("right");
}
else setTimeout(arguments.callee, 1000);
})
dat();
【问题讨论】:
-
else return promisifiedSetTimeout(dat, 1000)。但是,document.querySelector("body").click()不返回承诺,因此,将其设为异步函数并以这种方式循环它比简单地每 n 秒调用一次函数直到条件为真所必需的要复杂得多。这实际上是你想要做的吗?还是为了更有用的东西而简化了 -
我上传了这个过程,把它简化了很多。你给的代码 Uncaught (in promise) ReferenceError: promisifiedSetTimeout is not defined 它返回一个类似的错误
-
对,这是一个你需要创建的虚构函数,对不起
-
setTimeout(arguments.callee, 1000);应该实现什么?请注意,箭头函数没有自己的arguments,并且callee已被弃用。
标签: javascript asynchronous async-await promise callback