首先是抽象地表示一個異步操做。期約的狀態表明期約是否完成。
好比,假設期約要向服務器發送一個 HTTP 請求。請求返回 200~299 範圍內的狀態碼就足以讓期約的狀態變爲「兌現」。相似地,若是請求返回的狀態碼不在 200~299 這個範圍內,那麼就會把期約狀態切換爲「拒絕」。
因爲期約的狀態是私有的,因此只能在內部進行操做。內部操做在期約的執行器函數中完成。執行器函數主要有兩項職責:初始化期約的異步行爲和控制狀態的最終轉換。其中,控制期約狀態的轉換是經過調用它的兩個函數參數實現的。這兩個函數參數一般都命名爲 resolve()和 reject()。調用resolve()會把狀態切換爲兌現,調用 reject()會把狀態切換爲拒絕。另外,調用 reject()也會拋出錯誤