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

資訊專欄INFORMATION COLUMN

JS-Promise

widuu / 1889人閱讀

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

Promise

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

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

executor:

傳遞參數(shù)resolve和reject的函數(shù)。executor函數(shù)由Promise實現(xiàn)立即執(zhí)行,傳遞resolve和reject函數(shù)(在Promise構(gòu)造函數(shù)返回創(chuàng)建的對象之前調(diào)用executor)。當(dāng)調(diào)用resolve和reject函數(shù)時,分別代表已完成和已失敗。當(dāng)執(zhí)行程序完成,成功則調(diào)用resolve,出現(xiàn)錯誤則調(diào)用reject。

2.Description(描述)

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

Promise狀態(tài):

pending : 初始狀態(tài),未完成或拒絕。

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

rejected : 表示操作失敗。

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

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

返回一個Promise,這個Promise在所有可迭代參數(shù)中的所有Promise都fulfilled成功返回,或者在可迭代參數(shù)中的一個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在所有可迭代參數(shù)中只要有一個Promise執(zhí)行完畢,則會立刻執(zhí)行.then(),之后會繼續(xù)執(zhí)行剩下的Promise直到結(jié)束。

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 => 第一個異步任務(wù)執(zhí)行完畢")
      reject("promise3")
  }, 1000);
});

Promise.race([promise1, promise2, promise3]).then(function(success){
    console.log("success--------"+success);
}).catch(function(error){
    console.log("error--------"+error+"=> 立即執(zhí)行.then(),之后會繼續(xù)執(zhí)行未完成的異步任務(wù)promise2、promise1");
});
// 
/*
log:reject--------promise3 => 第一個異步任務(wù)執(zhí)行完畢
    error--------promise3=立即執(zhí)行.then(),之后會繼續(xù)執(zhí)行未完成的異步任務(wù)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,采用其最終狀態(tài),否則,返回的promise將用值來實現(xiàn)。通常,如果不知道一個值是否是一個promise,那么promise.resolve(value)它,并將返回值作為一個promise來處理。

function fnc(obj){
    return new Promise(function(reslove,reject){
        //根據(jù)obj的屬性選擇返回對應(yīng)的狀態(tài)
        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常用的幾個屬性,有不對的地方請指教~昨天看了一篇文章,還是挺有啟發(fā)的。。。。。
前端專業(yè)方向的盡頭

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/109044.html

相關(guān)文章

  • js-Promise

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

    xcold 評論0 收藏0

發(fā)表評論

0條評論

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