nodejs学习笔记之async,await
async应该是目前nodejs里最简单直白的异步方案了,async函数实际上就是generator函数的语法糖,省掉了callback的回调地狱,generator的yield next,promise的 .then .catch,使代码看起来更像是同步流程方案,更扁平化。下面看个例子:
这里我们要实现一个暂停功能,输入N毫秒,则停顿N毫秒后才继续往下执行。
//这里是一个功能函数也可以是其他比较耗时的操作。varsleep=function(time){returnnewPromise(function(resolve,reject){setTimeout(function(){resolve();},time);})};varstart=asyncfunction(){//在这里使用起来就像同步代码那样直观console.log('start');awaitsleep(3000);console.log('end');};start();
控制台先输出start,稍等3秒后,输出了end。
async函数使用方式:
//async必不可少是async函数的标志asyncfunctionmyFunc(){...//普通代码await...//1耗时代码或执行耗时函数执行并等待完成之后继续执行下面的代码letres=await...//2耗时代码或执行耗时函数并得到返回结果...}
错误捕捉方式:
//async使用try.catch捕捉错误asyncfunctionmyFunc(){try{...await...}catch(e){throwe;}}
本文参考http://cnodejs.org/topic/5640b80d3a6aa72c5e0030b6
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。