promise 异步编程的解决方案(解决回调地狱)
三种状态: pending-进行中、resolve-已完成、rejected-失败
promise 的基本用法:
let promise = new Promise( (resolve, reject) => {
if (sucess) {
resolve(a)
} else {
reject(err)
}
})
promise原型链上的方法
1. then()包含两个参数方法, resolve.reject
promise.then(
(resolve) => {console.log('已成功resolve')},
(reject) => {console.log('失败reject')}
)
2.catch()的作用捕获promise的错误,与then()方法reject回调一致,但是由于promise的报错具有冒泡的性质,能够不断传递,能够在下一个catch()中统一处理,同时catch()也能够捕获then()中抛出的错误
promise.then(
() => { console.log( '成功resolved' )}
).catch(
(err) => { console.log( 'err' ) }
)
then() 和 catch() 都会返回一个新的promise对象,可以链式调用
promise.then(
() => {console.log( 'resolved' }
).catch(
() => {console.log( 'err' )}
).then().catch()
then()方法本身返回一个新的promise,所以后一个then()针对的永远是一个新的promise
promise 异步编程的解决方案(解决回调地狱)
三种状态: pending-进行中、resolve-已完成、rejected-失败
promise 的基本用法:
let promise = new Promise( (resolve, reject) => {
if (sucess) {
resolve(a)
} else {
reject(err)
}
})
promise原型链上的方法
1. then()包含两个参数方法, resolve.reject
promise.then(
(resolve) => {console.log('已成功resolve')},
(reject) => {console.log('失败reject')}
)
2.catch()的作用捕获promise的错误,与then()方法reject回调一致,但是由于promise的报错具有冒泡的性质,能够不断传递,能够在下一个catch()中统一处理,同时catch()也能够捕获then()中抛出的错误
promise.then(
() => { console.log( '成功resolved' )}
).catch(
(err) => { console.log( 'err' ) }
)
then() 和 catch() 都会返回一个新的promise对象,可以链式调用
promise.then(
() => {console.log( 'resolved' }
).catch(
() => {console.log( 'err' )}
).then().catch()
then()方法本身返回一个新的promise,所以后一个then()针对的永远是一个新的promise