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
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。