gpt4 book ai didi

javascript - 同步 while 循环 javascript

转载 作者:行者123 更新时间:2023-11-30 14:04:43 24 4
gpt4 key购买 nike

我想要这个输出 1,1,1,....

代替 2,1

我想同步运行

//just wait 2 seconds
function s(callback){
setTimeout(() => {
callback()
}, 2000);
}
a=[2]
while (a.length!==0){
a.shift()
s(()=>{
a.push(2)
console.log('1');
})
}
console.log('2');

最佳答案

您可以使用当前代码实现此目的的一种方法是使用 async/await 和 Promises。

//just wait 2 seconds
function s(callback) {
return new Promise(resolve => {
setTimeout(() => {
callback()
resolve()
}, 2000);
})
}

const main = async function() {
const a = [2];
while (a.length !== 0) {
a.shift()
// This "waits" for s to complete. And s returns a Promise which completes after 2 secs
await s(() => {
a.push(2)
console.log('1');
})
}
console.log('2');
}

main()

如果你真的只需要一个无限循环 while(true) {/* ... */} 就足够了。

关于javascript - 同步 while 循环 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55665564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com