Promise对象就是一个异步请求占位符对象
把异步请求封装在Promise对象中,Promise的构造函数传入一个函数,其中两个参数为resolve和reject函数,当异步请求结束后,可以通过这两个函数返回请求的信息。
例:
const promise = new Promise((resolve,reject)=>{
setTimeOut(()=>{
resolve(r);
}, 200);
})
promise.then((msg)=>{
console.log(msg);
})
Promise对象的then可以接受resolve函数的参数,且可用于链式编程,因为promise.then()方法返回的也是一个promise对象
async和await
async函数返回一个promise对象(告诉其内部有异步操作)
如果async函数有return,则return作为其resolve的返回值,如果async函数无返回值,则返回undefined;
await为then语法糖,返回promise对象的resolve值,async函数内部会等待await执行完毕后再执行后续语句(异步转同步)
await后面如果不是promise对象,则返回其值。
注意点:最好把async...await放入try...catch中使用
网友评论