[英]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.