4--面試總結-promise

  1. promise
    異步原理:

    • 定義: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,簡單言之:誰執行的快,先輸出誰的結果;
  2. async/await
相關文章
相關標籤/搜索