账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于async/await promise 执行顺序
    51
    0
     function doA1(){  
         new Promise( function (resolve) {  
            console.log(11);  
            resolve();  
        }).then(o=>{  
           console.log(12);  
        }).then(o=>{  
           console.log(13);  
        }).then(o=>{  
           console.log(14);  
        })  
    }  
      
    await doA1();  
    console.log(2);
    //执行结果顺序为 11 12 2 13 14 
     function doA1(){
        return new Promise( function (resolve) {
            console.log(11);
            resolve();
        }).then(o=>{
           console.log(12);
        }).then(o=>{
           console.log(13);
        }).then(o=>{
           console.log(14);
        })
    }
    
    await doA1();
    console.log(2);
    //执行结果顺序为 11 12 13 14 2

    请高手解释下为何会如此执行 特别是第一段代码 执行结果为什么不是 11 2 12 13 14

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 找芣菿嬡哋亾 普通会员 1楼

      在JavaScript中,async/awaitPromise在异步编程中非常有用。它们允许你编写异步代码,使代码更加清晰和易于阅读。Promise在JavaScript中主要用于处理异步操作的结果,如获取数据、创建对象、发起网络请求等。

      使用async/awaitPromise时,你需要确保你有正确地定义了Promise。在异步函数中,你可以使用await关键字来等待Promise的解析和执行。如果Promise被拒绝(即Promise的状态不是resolve或reject),那么await关键字后面的代码将不会被执行。

      例如,以下是一个使用async/awaitPromise的简单示例:

      ```javascript async function getData() { const response = await fetch('https://api.example.com/data'); const data = await response.json(); return data; }

      async function main() { const data = await getData(); console.log(data); }

      main(); ```

      在这个示例中,getData函数使用await关键字来等待fetch函数的解析和执行。getData函数返回的是一个Promise,main函数使用await关键字来等待getData函数的返回值。

      在JavaScript中,Promise的执行顺序是:Promise -> rejected -> resolved。这意味着,如果Promise被拒绝,那么整个Promise链中的其他Promise将不会被执行。如果Promise被成功解析,那么所有被解析的Promise都将被执行。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部