您好,登錄后才能下訂單哦!
async應該是目前nodejs里最簡單直白的異步方案了,async函數實際上就是generator函數的語法糖,省掉了callback的回調地獄,generator的yield next,promise的 .then .catch,使代碼看起來更像是同步流程方案,更扁平化。下面看個例子:
這里我們要實現一個暫停功能,輸入N毫秒,則停頓N毫秒后才繼續往下執行。
// 這里是一個功能函數 也可以是其他比較耗時的操作。 var sleep = function (time) { return new Promise(function (resolve, reject) { setTimeout(function () { resolve(); }, time); })}; var start = async function () { // 在這里使用起來就像同步代碼那樣直觀 console.log('start'); await sleep(3000); console.log('end'); }; start();
控制臺先輸出start,稍等3秒后,輸出了end。
async函數使用方式:
// async 必不可少 是async函數的標志 async function myFunc(){ ... //普通代碼 await ... // 1 耗時代碼 或執行耗時函數 執行并等待完成之后繼續執行下面的代碼 let res = await ... // 2 耗時代碼 或執行耗時函數 并得到返回結果 ... }
錯誤捕捉方式:
// async 使用try.catch捕捉錯誤 async function myFunc(){ try{ ... await ... } catch(e) { throw e; } }
本文參考http://cnodejs.org/topic/5640b80d3a6aa72c5e0030b6
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。