关于Promise后续的方法。

前言: 在上一篇文章中,咱们熟知了什么是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的结果。
复制代码
相关文章
相关标签/搜索