转载:关于循环异步操做 Promise 实现,ES7 的 await 和 async

这里须要获得最终的结果就比较使人头疼了,好在es7的async/await异步方案为咱们提供了解决方案。html

node.js7.6已经原生支持async/await,因此把node更新到7.6以上,就能够放心使用啦。node

async 能够声明一个异步函数,此函数须要返回一个 Promise 对象。await 能够等待一个 Promise 对象 resolve,并拿到结果。promise

代码实现:异步

async function sleep(timeout) {  
  return new Promise((resolve, reject) => {
    setTimeout(function() {
      resolve();
    }, timeout);
  });
}

(async function() {
  console.log('Do some thing, ' + new Date());
  await sleep(3000);
  console.log('Do other things, ' + new Date());
})();
//Do some thing, Mon Feb 23 2015 21:52:11 GMT+0800 (CST)  
//Do other things, Mon Feb 23 2015 21:52:14 GMT+0800 (CST)

参考文献

[1]. 关于循环promise的解决方案 - 天下大雨 - 博客园

async

相关文章
相关标签/搜索