您现在的位置是:网站首页> 小程序设计

Promise async await

摘要

Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve好reject,他们是两个函数,由javascript引擎提供,不用自己部署

var promise=new Promise(function(resolve,reject){

//... some code

if(/*异步处理成功*/){

resolve(value);

}else{

reject(error);

}

}

promise.then(function (value){

},function(error){

});


funtion Sleep(ms){

return new Promise((resolve,reject)=>{

setTimeout(function(){

   resolve("over");

},ms);

});

}

Sleep(5000).then((value)=>{

console.log(value);

});


函数前面的async表示函数内内部有异步操作

await可以等待promise数据返回

 <input type="button" id="wait" onclick="wait()" value="等待">

 <input type="button" id="msg" onclick="msg()" value="消息">

<script>

function Sleep(ms){


            return new Promise((resolve,reject)=>{

                setTimeout(function(){

                    resolve("over");

                },ms);

        });

        }


        async function XX(ms){

            var ss=await Sleep(ms);

            return ss;

        }

        async function HelloAsync(){

            return "Async返回";

        }

        $(function () {

        });

        async function msg()

        {

            var str=await HelloAsync();

            alert(str);

        }

        async function wait()

        {

            var str=await XX(10000);

            //console.log("终于等到了"+str);

            alert('终于等到了'+str);

        }

</script>

async函数实际返回promise对象

如不带await 那么就是返回promise

带await 返回实际返回值

await必须是在async函数中调用




Top