轉載:關於循環異步操做 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

相關文章
相關標籤/搜索