码迷,mamicode.com
首页 > Web开发 > 详细

nodejs学习笔记之async,await

时间:2017-02-05 14:13:11      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:async await 异步

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

本文出自 “__无字书” 博客,请务必保留此出处http://wuzishu.blog.51cto.com/6826059/1894990

nodejs学习笔记之async,await

标签:async await 异步

原文地址:http://wuzishu.blog.51cto.com/6826059/1894990

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!