我尝试以5秒的间隔重复async
次10次。这就是我所做的:
repeat(x) {
(async function p(x, count) {
if (cam) {
await x.foo().then(data => {
...
});
}
if (count < 10) {
setTimeout(p(x, count+1), 5000);
}
})(cam, 0);
}
但我得到的是p()
执行10次而不等待。有谁知道为什么?
任何想法都赞赏。
答案 0 :(得分:3)
您正在使用setTimeout(p(x, count+1), 5000);
立即调用该函数并传递其返回值,假设在{5}之后调用undefined
您需要传递函数引用和参数,以便在使用以下
调用方法时使用setTimeout(p, 5000,x, count+1);