问题描述
据我所知,当我像 setTimeout 一样调用 web API 4 次时,JavaScript 的正常行为:
它应该调用第一个,然后将其添加到队列中等待调用堆栈为空..重复它会对所有其他api执行相同的操作..所以第二个函数应该等到第一个执行然后开始被调用 .. 这意味着 第二个函数应该花费 2 秒或更长时间,然后 它应该花费第三个函数 3 秒或更长时间 ...依此类推。 ..
我错过了什么!?
解决方法
var TimeOutOnTimeOut = () => {
setTimeout(() => {
console.log("Like this!");
TimeOutOnTimeOut();
},3000);
};
TimeOutOnTimeOut();
他们会同时调用,但是,您可以在第一个完成后调用下一个。
,注意:由于我无法添加评论,所以我发布了这个答案。
const sleep = (timeout) => {
return new Promise((resolve,reject) => {
setTimeout(() => {
// perform some task here
resolve(true);
},timeout);
});
};
async () => {
// in asynchronous function
await sleep(1000);
// do something after code returns
};
// in global scope or synchronous
sleep(1000).then(() => {
// callback
});
,
尝试使用异步等待并等待每个操作完成。
onAuthStateChanged