async await

await等待的是Promise的 resolve和reject(axios能用实际上axios封装的是Promise)

function sleep(second) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('sleep~');
        }, second);
    })
}

function normalFunc() {
    setTimeout(()=>{
        console.log('normalFunc');
    },3000)
}

async function awaitDemo() {
    await normalFunc();
    let result = await sleep(2000);
    console.log(result);// 两秒之后会被打印出来
    console.log('something, ~~');
}

awaitDemo();
// sleep~
// something, ~~
// normalFunc
//因为async中的await只等待Promise的 resolve和reject,所以normalFunc没有被等待,而sleep被等待了
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。