淺析Promise對象用法

在飽嘗了利用函數執行棧書寫異步代碼的痛苦後,人們創造出了Promise對象,異步

做爲在ES6中被統一規範的對象,它用來在函數中將函數邏輯與結果處理分隔開來,函數

該對象提供了兩個參數,resolve以及reject。這兩個參數都是函數,下面是使用spa

Promise對象的簡單代碼示例:code

 1 var fn=function(num){
 2     return new Promise(function(resolve,reject){
 3         if(typeof num=='number'){
 4             resolve();
 5         }else{
 6             reject();
 7         }
 8     });
 9 }
10 
11 fn(2).then(function(){
12     console.log('輸入了一個數字!');
13 }).catch(function(){
14     console.log('輸入的不是一個數字!');
15 });

上面是一個簡單邏輯判斷輸入函數fn的參數是否爲數字的代碼,其中函數體fn執行返回一個Promise對象,對象

若是結果達到預期,執行resolve(),反之執行reject()。在函數執行時,resolve對應then,reject對應catch,blog

根據這種一一對應關係,咱們能夠輕易對函數結果進行操做。值得一提是,then函數含有兩個參數,第一io

個對應resolve,而第二個對應reject。因此實際上catch(()=>{})等價於then(null,()=>{}).console

另外,Promise的應用場景很是普遍,好比咱們使用的不一樣AJAX請求中的有依賴的數據傳遞等。function

相關文章
相關標籤/搜索