promise异步操作
2019-11-20 本文已影响0人
web周
promise异步操作
定义:包含异步操作结果的对象
状态:
进行中:pending
在异步函数下方写pending时要执行的方法,在异步回调成功和失败内,改变pending执行方法的状态
已成功:resolved
已失败:rejected
声明方式:
new Promise((resolve, reject) => {})
resolve:将状态从未完成变为成功,在异步操作成功时调用,并将异步操作的结果作为参数传递出去
reject:将状态从未完成变为失败,在异步操作失败时调用,并将异步操作的错误作为参数传递出去
promise使用
promise.all 当请求都执行了之后,运行方法
promise.race 竞速哪个快,访问哪个
promise.then()
书写异步返回
2种写法
- 写法1. 写在then内,第一个方法为成功,第二个方法为失败
形式:promise.then(成功调用方法,失败调用方法)
promise.then(function (value) {
// success
console.log(value)
}, function () {
// failure
})
- 写法2. 写在then内,为成功,catch内为失败(一般使用第二种写法)
形式::promise.then(成功调用方法).catch(失败调用方法)
promise.then(function (value) {
// success
console.log(value)
}).catch(function (err) {
/* 失败 */
console.log('输出失败')
console.log(err)
})
Promse.race
赛跑的意思 比速
Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。
可以用于资源请求