繁体   English   中英

同步while循环javascript

[英]synchronous while loop javascript

我想要这个输出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) { /* ... */ }就足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM