国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS-Promise

widuu / 1893人閱讀

摘要:對象表示異步操作的最終完成或失敗及其結果值。狀態初始狀態,未完成或拒絕。返回使用給定值解析的對象。根據的屬性選擇返回對應的狀態簡簡單單的敘述下常用的幾個屬性,有不對的地方請指教昨天看了一篇文章,還是挺有啟發的。。。。。

Promise

The Promise object represents the eventual completion (or failure) of an asynchronous operation, and its resulting value.
Promise對象表示異步操作的最終完成(或失敗)及其結果值。

1.Syntax(語法)
new Promise(executor);

executor:

傳遞參數resolve和reject的函數。executor函數由Promise實現立即執行,傳遞resolve和reject函數(在Promise構造函數返回創建的對象之前調用executor)。當調用resolve和reject函數時,分別代表已完成和已失敗。當執行程序完成,成功則調用resolve,出現錯誤則調用reject。

2.Description(描述)

Promise允許異步方法返回與同步方法類似的值:異步方法不是立即返回最終值,而是返回一個Promise,在將來的某個時候提供該值。

Promise狀態:

pending : 初始狀態,未完成或拒絕。

fulfilled : 意味著操作成功完成。

rejected : 表示操作失敗。

返回的Promiseprototype下有.then().catch()方法

3.Methods(方法)
Promise.all(iterable)

返回一個Promise,這個Promise在所有可迭代參數中的所有Promise都fulfilled成功返回,或者在可迭代參數中的一個Promise為rejects失敗時返回。

var promise1 = new Promise(function(resolve, reject) {
  setTimeout(resolve("promise1"), 100);
});
var promise2 = new Promise(function(resolve, reject) {
  setTimeout(resolve("promise2"), 50);
});

Promise.all([promise1, promise2]).then(function(values){
  console.log(values);
});
// log: Array [promise1, promise2]
Promise.race(iterable))

返回一個Promise,這個Promise在所有可迭代參數中只要有一個Promise執行完畢,則會立刻執行.then(),之后會繼續執行剩下的Promise直到結束。

var promise1 = new Promise(function(resolve, reject) {
  setTimeout(function(){
      console.log("resolve--------promise1")
      resolve("promise1")
  }, 5000);
});
var promise2 = new Promise(function(resolve, reject) {
  setTimeout(function(){
      console.log("resolve--------promise2")
      resolve("promise2")
  }, 3000);
});
var promise3 = new Promise(function(resolve, reject) {
  setTimeout(function(){
      console.log("reject--------promise3 => 第一個異步任務執行完畢")
      reject("promise3")
  }, 1000);
});

Promise.race([promise1, promise2, promise3]).then(function(success){
    console.log("success--------"+success);
}).catch(function(error){
    console.log("error--------"+error+"=> 立即執行.then(),之后會繼續執行未完成的異步任務promise2、promise1");
});
// 
/*
log:reject--------promise3 => 第一個異步任務執行完畢
    error--------promise3=立即執行.then(),之后會繼續執行未完成的異步任務promise2、promise1
    index.html:20 resolve--------promise2
    index.html:14 resolve--------promise1
*/

Promise.reject()

返回因給定原因被拒絕的Promise對象。

function fnc(obj){
    return new Promise(function(reslove,reject){
        if(obj) reslove("success")
        else reject("error")
    })
}
fnc(false).then(function(success){
    console.log("success------"+success)
},function(error){
    console.log("error------"+error)
})
//log : error------error
**
Promise.resolve()

返回使用給定值解析的Promise對象。如果值是thenable(即具有then方法),返回的promise將“遵循”該thenable,采用其最終狀態,否則,返回的promise將用值來實現。通常,如果不知道一個值是否是一個promise,那么promise.resolve(value)它,并將返回值作為一個promise來處理。

function fnc(obj){
    return new Promise(function(reslove,reject){
        //根據obj的屬性選擇返回對應的狀態
        if(obj) reslove("success")
        else reject("error")
    })
}
fnc(false).then(function(success){
    console.log("success------"+success)
},function(error){
    console.log("error------"+error)
})
//log : error------error

簡簡單單的敘述下Promise常用的幾個屬性,有不對的地方請指教~昨天看了一篇文章,還是挺有啟發的。。。。。
前端專業方向的盡頭

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/109044.html

相關文章

  • js-Promise

    摘要:總結用方法創建對象用或添加對象的處理函數它的作用是為實例添加狀態改變時的回調函數。方法是的別名,用于指定發生錯誤時的回調函數。 一、為什么需要Promise Javascript 采用回調函數(callback)來處理異步編程。從同步編程到異步回調編程有一個適應的過程,但是如果出現多層回調嵌套,也就是我們常說的回調金字塔(Pyramid of Doom),絕對是一種糟糕的編程體驗。于是...

    xcold 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<