美文网首页
await + async

await + async

作者: xueyueshuai | 来源:发表于2023-11-02 13:52 被阅读0次

    await等待右侧表达式的结果,这个结果是promise对象或者其他值。
    如果它等到的不是一个 promise 对象,那 await 表达式的运算结果就是它等到的东西。
    如果它等到的是一个 promise 对象,await 就忙起来了,它会阻塞后面的代码,等着 promise 对象 resolve,然后得到 resolve 的值,作为 await 表达式的运算结果。

    function test() {
        return new Promise(resolve => {
            setTimeout(() => resolve("test"), 2000);
        });
    }
     
    const result = await test();
    console.log(result);
    console.log('end')
    

    由于test()造成的阻塞,console.log('end')会等到两秒后执行
    所以为了避免造成阻塞,await 必须用在 async 函数中,async 函数调用不会造成阻塞。

    function test() {
        return new Promise(resolve => {
            setTimeout(() => resolve("test"), 2000);
        });
    }
     
    async function test2() {
        const result = await test();
        console.log(result);
    }
    test2();
    console.log('end');
    

    先执行console.log('end'),两秒后执行console.log('test')

    相关文章

      网友评论

          本文标题:await + async

          本文链接:https://www.haomeiwen.com/subject/lggyidtx.html