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
endjavascript

相關文章
相關標籤/搜索