es6之 async await 使用小计

var sleep = (time)=>{
    return new Promise((resolve,reject)=>{
        setTimeout(()=>{
            resolve('ok');
            reject('err');
        },time)
    })
};

var start = async function () {
    try {
        // 在这里使用起来就像同步代码那样直观
        console.log('start');
        // await必须再 async函数的上下文中
        for(var v of [1,2,3,4,5]){
            console.log(`当前是弟${v}次等待..`);
            await sleep(1000);
        }
        //获取返回值,如果有错则下一步不执行
        let re = await sleep(1000);
        console.log(re);
        console.log('end');
    }catch(err){
        console.log(err);
    }

};
start();

输出结果:

start
当前是弟1次等待..
当前是弟2次等待..
当前是弟3次等待..
当前是弟4次等待..
当前是弟5次等待..
ok
end

  

原文地址:https://www.cnblogs.com/wujiaolong/p/7428528.html