非阻塞模型中Promise,Future 和 Callback一些比較常用的模型;
Future表示一個可能還沒有實際完成的異步任務結果;實際在編程中,應用future數據結構的時候,你得到並不是一個真實結果;而是一個FutureData; 真實的結果可能還沒有處理完成。當然你可以針對這個結果添加Callback操作(成功或者失敗的回調)。
Promise結構如同一個狀態機,是基於狀態的流程控制結構;在不同的狀態過程中,由任務執行提供相應的事務來決定在這個狀態的時候,程序該做什么;
Promise有4種狀態:
- pending: 還沒有得到肯定或者失敗結果,進行中
- fulfilled: 成功的操作
- rejected: 失敗的操作
- settled: 已被
fulfilled
或rejected
提供方法:
- then:將事務添加到事務隊列中
- resolve:開啟流程,讓整個操作從第一個事務開始執行