[React Native]Promise機(jī)制

React Native中經(jīng)常會看到Promise機(jī)制。
Promise機(jī)制代表著在JavaScript程序中下一個偉大的范式??梢园岩恍?fù)雜的代碼輕松擼成一個串,和Android中的rxjava非常像。

Promise代表一個任務(wù)結(jié)果,這個任務(wù)有可能完成,有可能沒有完成。Promise模式唯一需要的一個接口是調(diào)用then方法,用來注冊當(dāng)Promise完成或者失敗時調(diào)用的回調(diào)函數(shù)。

一般異步函數(shù)用到了Promise機(jī)制。

在異步操作之前通常異步操作是借助回調(diào)函數(shù)的。

    onScuccessCallback(result){
        //...   成功的回調(diào)
    }
    onErrorCallback(error){
        //...  失敗的回調(diào)
    }
    doSomething(){
        try {
            this.AsyncFunction(para,this.onScuccessCallback,this.onErrorCallback)
        }catch(errors){
            //...
        }
    }

使用Promise機(jī)制后, 就直接通過then擼成串就好了

        this.AsyncFunction(para).then(
            (para)=>{
                // 處理成功的事件
            }
        ).catch(
            (error)=>{
                // 處理失敗的事件
            }
        )

這還體現(xiàn)不出優(yōu)勢來, Promise的真正強(qiáng)大之處在于可以方便的實現(xiàn)Promise的多重鏈接,可以參考官方的例子。

  getMoviesFromApiAsync() {
    return fetch('http://facebook.github.io/react-native/movies.json')
      .then((response) => response.json())  //獲取結(jié)果的json傳遞給下個then
      .then((responseJson) => {       //執(zhí)行成功獲取結(jié)果
        return responseJson.movies; 
      })
      .catch((error) => {   //執(zhí)行失敗
        console.error(error);
      });
  }

更多精彩請關(guān)注微信公眾賬號likeDev。


likeDev.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容