最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

循环Node.js的异步

运维笔记admin11浏览0评论

循环Node.js的异步

循环Node.js的异步

我正在尝试使循环在console.log之前运行,但首先运行的是console.log

for(let i = 0; i < 10; i++){
    setTimeout(function(){ 
        console.log("hello " + i); 
    }, 500);
}

console.log("Bye bye");
回答如下:

因为javascript中的大多数函数都是异步的(最著名的是PromisessetTimeoutsetInterval),以避免阻塞流执行,所以循环不会等待setTimeout函数继续执行。] >

您可以使用async/await函数执行类似的操作,该函数将在继续执行之前等待解决承诺,请谨慎使用the setTimeout in loop(不建议这样做)

如果要实现这一点,可以执行以下操作:

;(async () => { // Declaration to make the code async

  for(let i = 0; i < 10; i++){
      await new Promise(resolve => setTimeout(function(){ 
          console.log("hello " + i); 
          resolve();
      }, 500));
  }

  console.log("Bye bye");
})();

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论