4--面試總結-promise
- promise
異步原理:
![](http://static.javashuo.com/static/loading.gif)
- 定義:promise是異步編程的解決方案,能夠解決異步回調地獄的問題;
- 原理:三種狀態兩種結果的一個狀態機;
三種狀態(pending,fulfilled,rejected)
兩種結果:(success,error)
- promise.reject與promise.resolve的區別
promise.reject代碼實例
var failurestub = sinon.stub(xhr, "request").returns(Promise.reject(new Error("bad!")));
返回一個使用接收到的值進行了reject的新的promise對象。
而傳給Promise.reject的值也應該是一個Error類型的對象。
*** 另外,和promise.resolve不一樣的是,即便Promise.reject接收到的參數是一個promise對象,該函數也仍是會返回一個全新的promise對象。
var r = promise.reject(new Error('error'));
console.log(r === Promise.reject(r)); //false
- promise.race
var p1 = Promise.resolve(1),
var p2 = Promise.resolve(2),
var p3 = Promise.resolve(3);
Promise.race([p1, p2, p3]).then(function(){
promise.log(value); //1
})
參數promise數組中的任何一個promise對象若是變爲resolve或者reject的話,該函數就會返回,並使用這個promise對象的值進行resolve或者reject,簡單言之:誰執行的快,先輸出誰的結果;
- async/await
歡迎關注本站公眾號,獲取更多信息