Promise對象

ES6 規定,Promise對象是一個構造函數,用來生成Promise實例。
resolve函數的作用是,將Promise對象的狀態從“未完成”變為“成功”(即從 pending 變為 resolved),在異步操作成功時調用,并將異步操作的結果,作為參數傳遞出去;reject函數的作用是,將Promise對象的狀態從“未完成”變為“失敗”(即從 pending 變為 rejected),在異步操作失敗時調用,并將異步操作報出的錯誤,作為參數傳遞出去。

let promise = new Promise(function(resolve,reject){
            if(true){
                resolve("修改狀態");
            }else{
                reject(error);
            }
        })
        promise.then(function(value){
            alert(value)  //value是resolve()的參數
        },function(error) {
            // body...
            alert(error)
        });
let fn = ()=>{
            return 3;
        }
        let promise = new Promise(function(resolve,reject){
            if(true){
                resolve(fn());
            }else{
                reject(error);
            }
        })
        promise.then(function(value){
            alert(value)  //3
        },function(error) {
            // body...
            alert(error)
        });

ajax使用Promise對象的實例:

const getJSON = function(url) {
  const promise = new Promise(function(resolve, reject){
    const handler = function() {
      if (this.readyState !== 4) {
        return;
      }
      if (this.status === 200) {
        resolve(this.response);
      } else {
        reject(new Error(this.statusText));
      }
    };
    const client = new XMLHttpRequest();
    client.open("GET", url);
    client.onreadystatechange = handler;
    client.responseType = "json";
    client.setRequestHeader("Accept", "application/json");
    client.send();

  });

  return promise;
};

getJSON("/posts.json").then(function(json) {
  console.log('Contents: ' + json);
}, function(error) {
  console.error('出錯了', error);
});
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Promise對象是一種解決異步問題的方法,還有的解決方案是asyns 和 await (es7) 這么是目前的終...
    站在大神的肩膀上看世界閱讀 1,274評論 0 6
  • 目錄:Promise 的含義基本用法Promise.prototype.then()Promise.prototy...
    BluesCurry閱讀 1,497評論 0 8
  • Promise 對象 Promise 的含義 Promise 是異步編程的一種解決方案,比傳統的解決方案——回調函...
    neromous閱讀 8,723評論 1 56
  • Promise含義 Promise是異步編程的一種解決方案,比傳統的解決方案——回調函數和事件——更強大。所謂Pr...
    oWSQo閱讀 1,090評論 0 4
  • 00、前言Promise 是異步編程的一種解決方案,比傳統的解決方案——回調函數和事件——更合理和更強大。它由社區...
    夜幕小草閱讀 2,137評論 0 12