關於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的結果。
複製代碼
相關文章
相關標籤/搜索