前言: 在上一篇文章中,咱们熟知了什么是promise,怎么去使用它,经过它的then方法来调用在不一样状态下触发的两个函数。今天我将向你们介绍promise的其余的集中方法。数组
Promise其余的几种方法:promise
###以下: 1、catch方法:函数
get_promise('test1.txt')
.then(data => console.log('当promise切换到fulfill状态下会调用的函数'))
.catch(error =>
console.log('当promise切换到reject状态时,catch函数会被调用')
)
######注意:catch是可选的,就是说并非必须被调用。
2、all方法:
Promise.all([promise对象1,promise对象2,promise对象3])
promise.all这个方法返回的是一个promise对象,当all参数中的数组中的全部元素都resolve了,会调用promise.all返回的promise对象的then方法。
如:
Promise.all([promise对象1,promise对象2,promise对象3]).then(function() {
参数数组中的每个元素都resolve了,这个函数才会被调用
})
部分人可能听到参数是个数组这块可能会是一头雾水,在这我给你们举个实例。
let array = [
promise_1('test_1.txt'),
promise_2('test_2.txt'),
promise_3('test_3.txt')
]
promise.all(array).then(data=>{
console.log(data)
//值得注意的是,这里的data是一个数组,由于以前all的参数是一个数组,data这个数组中的每个元素都是对应位置promise对象返回的结果
})
3、race方法:
race方法实际上是和all方法有类似之处。
Promise.race([promise对象1,promise对象2,promise对象3])
在这里,咱们会获得这个数组中第一个resolve的对象
如:
Promise.race(array).then(data => {
console.log(data)
})
***之因此说它与all方法是有类似的,是由于他们的参数都是一个数组,不一样之处是all的方法是全都resolve以后,程序才继续执行;而race方法是只要是数组中的众多promise对象,有一个resolve了,程序就会继续执行,此时传入then中的参数data,就是一个对象,那个resolve元素的promise对象的resolve的结果。
复制代码