最简朴的async、await异步

async/await异步

Async/Await应该是现在最简朴的异步计划了,ES7 中新增了 async/await 两个关键词。async 能够声明一个异步函数,此函数须要返回一个 Promise 对象。await 能够守候一个 Promise 对象 resolve,并拿到效果。 一个栗子:

先看一下同步状态下

同步

console.log(1);
        console.log(2);
        setTimeout(function(){
            console.log(3)
        },3000);
        console.log(4);
        console.log(5)

上边的打印效果人人想必都晓得,这是同步状态下的实行递次

在看一个例子

function p1(){
            return new Promise(function(resolve,reject){
                setTimeout(function(){
                    console.log("p1_2000");
                    resolve()
                },3000)
            })
        }
 function p2(){
            return new Promise(function(resolve,reject){
                setTimeout(function(){
                    console.log("p2_2000");
                    resolve()
                },2000)
            })
        }
 console.log("start");
 p1();
 p2();
 console.log(end)
 //start 
 //end
 //p2_2000
 //p1_3000

我们想做的是让他按这个递次实行下来我们就要用到async、await

看代码

 function p1(){
            return new Promise(function(resolve,reject){
                setTimeout(function(){
                    console.log("p1_3000");
                    resolve()
                },3000)
            })
           
        }
        function p2(){
            return new Promise(function(resolve,reject){
                setTimeout(function(){
                    console.log("p2_2000");
                    resolve()
                },2000)
            })
        }
        
        //await 只能出现在异步函数里
         async function shi(){
            console.log("start")
            await p1();
            await p2();
            console.log("end")
         }
         
         p3=shi();
         p3.then(function(){
             console.log("完毕")
         })

上边函数实行下来就是根据谁人递次下来的,人人记着await 只能出现在异步函数里!配套运用

    原文作者:青石巷
    原文地址: https://segmentfault.com/a/1190000010265213
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞