promise 是前端面試和工作中極其常見的乙個概念,關於它各種方法的手寫實現也很有市場,今天在這裡總結一下 promise 基本方法的簡單實現。
catch
方法是對then
方法的封裝,只用於接收reject(reason)
中的錯誤資訊。
因為在then
方法中onrejected
引數是可不傳的,不傳的情況下,錯誤資訊會依次往後傳遞,直到有onrejected
函式接收為止,因此在寫promise
鏈式呼叫的時候,then
方法不傳onrejected
函式,只需要在最末尾加乙個catch()
就可以了,這樣在該鏈條中的promise
發生的錯誤都會被最後的catch
捕獲到。
catch(onrejected)
catch
在promise
鏈式呼叫的末尾呼叫,用於捕獲鏈條中的錯誤資訊,但是catch
方法內部也可能出現錯誤,所以有些promise
實現中增加了乙個方法done
。
done
相當於提供了乙個不會出錯的catch
方法,並且不再返回乙個promise
,一般用來結束乙個promise
鏈。
done() );
}
finally
方法用於無論是resolve
還是reject
,finall
y的引數函式都會被執行。
finally(fn) , reason => );
};
promise.all
方法接收乙個promise
陣列,返回乙個新promise2
,併發執行陣列中的全部promise
,所有promise
狀態都為resolved
時,promise2
狀態為resolved
並返回全部promise
結果,結果順序和promise
陣列順序一致。如果有乙個promise
為rejected
狀態,則整個promise2
進入rejected
狀態。
static all(promiselist)
}, reject);
i++;
}});
}
promise.race
方法接收乙個promise
陣列, 返回乙個新promise2
,順序執行陣列中的promise
,有乙個promise
狀態確定,promise2
狀態即確定,並且同這個promise
的狀態一致。
static race(promiselist) , reject);
}});
}
promise.resolve
用來生成乙個rejected
完成態的promise
,promise.reject
用來生成乙個rejected
失敗態的promise
。
static resolve(value) );
return promise;
}static reject(reason) );
}
常用的方法基本就這些,promise
還有很多擴充套件方法,這裡就不一一展示,基本上都是對then
方法的進一步封裝,只要你的then
方法沒有問題,其他方法就都可以依賴then
方法實現。
~
學習有趣的知識,結識有趣的朋友,塑造有趣的靈魂!
promise基本使用 簡單的運動效果
一開始接觸到promise的時候也是比較懵逼的,不太理解他們的奧秘在哪兒,以及我們為什麼要使用它,隨著深入的了解,覺得他很大程度了解決了我們之前的 地域的問題,還有關於資料請求非同步的方式,promise極大程度的解決了我們的 多層巢狀難以閱讀理解的問題。接著入正題,現在我們要實現乙個邊框的劃入效果...
promise的基本使用
promise 主要是解決非同步深層的巢狀問題 promise的基本使用 var p newpromise function resolve,reject sele return p 補充 在promise中,我們通常用 then來得到非同步任務正確的值,用.catch來得到非同步任務錯誤的結果 現...
promise 的基本用法
resolve 既是函式也是引數,它用於處理成功的 在非同步任務成功的時候,去呼叫resolve reject 既是函式也是引數,它用於處理失敗的 在非同步任務失敗的時候,去呼叫reject 知識點1 例1 最基本的寫法 promise的基本語法哦 const aa new promise func...