Promise对象
一、介绍
是一个构造函数,用来封装异步操作并且可以获取其成功或失败的结果
const p = new Promise(function(resolve,reject){//封装一个异步操作setTimeout(function(){//得到一些数据let date = '数据库中的用户数据'//调用两个参数改变promise的状态resolve(data);//表示成功了//或let err = '数据读取失败'reject(err)},1000)
})//调用promise对象的then方法
p.then(function(value){//如果调用了resolve,执行then方法中的第一个回调函数console.log(value)
}),function(reason){//如果调用了reject,执行then方法中的第二个回调函数console.log(reason)
}
二、async和await
1、async函数
- 返回值为promise对象(只要返回的结果不是一个promise类型的对象,那么返回的结果就是一个成功的promise)
- promise对象的结果由async函数执行的返回值决定
在这里插入代码片
2、await函数
- await必须写在async函数中
- await右侧的表达式一般为promise对象
- await返回的是promise成功的值
- await的promise失败了,就会抛出异常,需要通过try…catch捕获处理
const p = new Promise((resolve,reject)=>{resolve('成功的值')//或reject('失败的值')
})
async function main(){try{let result = await p;console.log(result)}catch(e){console.log(e)}
}
main()