成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

初探 es6 promise

paraller / 3249人閱讀

摘要:是單線程程序,所有代碼都是單線程執(zhí)行。導(dǎo)致的網(wǎng)絡(luò)請(qǐng)求都是異步執(zhí)行,異步執(zhí)行可以通過(guò)回調(diào)函數(shù)實(shí)現(xiàn)秒鐘才能打印,回調(diào)函數(shù)處理異步執(zhí)行的但是推出一種新的方法對(duì)象用于表示一個(gè)異步操作的最終狀態(tài)完成或失敗,以及其返回的值。

javascript是單線程程序,所有代碼都是單線程執(zhí)行。導(dǎo)致javascript的網(wǎng)絡(luò)請(qǐng)求都是異步執(zhí)行,異步執(zhí)行可以通過(guò)回調(diào)函數(shù)實(shí)現(xiàn):
setTimeout(callback,1000);
function callback(){
    console.log("----callback")     
    //1秒鐘才能打印,回調(diào)函數(shù)處理異步執(zhí)行的
};
但是es6推出一種新的方法new Promise()==>對(duì)象用于表示一個(gè)異步操作的最終狀態(tài)(完成或失?。?,以及其返回的值。
new Promise( function(resolve, reject) {...});resolve 表示成功的狀態(tài) reject 表示失敗的狀態(tài)
Promise的方法有:
1.Promise.all([]).then(e=>e).catch(e=>e) ==>數(shù)組中所有傳入狀態(tài)完成才執(zhí)行
2.Promise.race([]).then(e=>e).catch(e=>e) ==>數(shù)組中又一個(gè)傳入的狀態(tài)完成就執(zhí)行
3.Promise.resolve({}) ==>返回一個(gè)成功的狀態(tài)
4.Promise.reject({}) ==>返回一個(gè)失敗的狀態(tài)
let a=new Promise((resolve,reject)=>{
    resolve(1)
    //或reject()
});
a.then(e=>{   // resolve 返回的結(jié)果
    console.log(e)  //1
}).catch(e=>{ //reject 返回的結(jié)果
    console.log(e)
});
如果我們有一個(gè)需求是需要所有3個(gè)接口的數(shù)據(jù)都返回了然后再進(jìn)行操作,那么promise.all就可以解決,比如下面例子:
let b1=new Promise((resolve,reject)=>{
    resolve("b1")
});
let b2=new Promise((resolve,reject)=>{
    resolve("b2")
})
let b3=new Promise((resolve,reject)=>{
    resolve("b3")
});
let b4=Promise.resolve("成功")  //調(diào)用一個(gè)成功的狀態(tài)
Promise.all([b1,b2,b3,b4]).then(value=>{
    console.log(value)   //  "b1", "b2", "b3" ]
})
let b5=Promise.reject("失敗")  //調(diào)用一個(gè)失敗的狀態(tài)
Promise.all([b1,b5]).then(value=>{
    console.log(value)   
}).catch(e=>{
    console.log(e,"------失敗")  //失敗
})
如果我們有一個(gè)需求是3個(gè)接口中只要有一個(gè)完成了接口請(qǐng)求即執(zhí)行,Promise.race([])
var promise1 = new Promise(function(resolve, reject) {
    setTimeout(resolve, 50, "one");
});
var promise2 = new Promise(function(resolve, reject) {
    setTimeout(resolve, 100, "two");
});
Promise.race([promise1, promise2]).then(value=>{    
  console.log(value);  //one  
}).catch(e=>{
    console.log(e)
})
//promise1或者promise2誰(shuí)先執(zhí)行完就執(zhí)行就獲取先執(zhí)行的值

每天進(jìn)步一點(diǎn),希望大家喜歡,也希望喜歡的朋友點(diǎn)個(gè)贊或收藏,后續(xù)繼續(xù)更新...

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/93651.html

相關(guān)文章

  • Puppeteer初探--爬取并生成《ES6標(biāo)準(zhǔn)入門(mén)》PDF

    摘要:首先介紹是一個(gè)庫(kù),他提供了一組用來(lái)操縱的默認(rèn)也就是無(wú)的,也可以配置為有有點(diǎn)類似于,但是官方團(tuán)隊(duì)進(jìn)行維護(hù)的,前景更好。使用,相當(dāng)于同時(shí)具有和的能力,應(yīng)用場(chǎng)景會(huì)非常多。 首先介紹Puppeteer Puppeteer是一個(gè)node庫(kù),他提供了一組用來(lái)操縱Chrome的API(默認(rèn)headless也就是無(wú)UI的chrome,也可以配置為有UI) 有點(diǎn)類似于PhantomJS,但Puppet...

    JerryWangSAP 評(píng)論0 收藏0
  • ES6初探

    摘要:可以直譯為古怪到有魅力。里面基本上這些是被弱化了的,或者說(shuō)是被隱藏起來(lái)了。而之前的的語(yǔ)法使得入門(mén)的門(mén)檻變高了。但是,于此同時(shí),作為語(yǔ)言的獨(dú)特魅力被削弱了。應(yīng)該說(shuō),理解這些傳統(tǒng)的語(yǔ)法對(duì)也很有意義。因?yàn)楫吘惯@些只是被隱藏,而不是被剔除。 這兩天在看React的一些東西。接觸到了ES6。談?wù)勔恍┐譁\的看法。 ES6其實(shí)是個(gè)簡(jiǎn)稱。這東西學(xué)名叫做ECMAScript 2015,或者ES 2015...

    tianyu 評(píng)論0 收藏0
  • Promise初探

    摘要:可以根據(jù)省份城市和區(qū)對(duì)組件設(shè)置默認(rèn)值。獲取省份獲取城市獲取區(qū)出現(xiàn)層嵌套的回調(diào),這就是傳說(shuō)中的惡魔金字塔。相比回調(diào)嵌套,層次更分明,可讀性強(qiáng)?;驹韺W(xué)習(xí)無(wú)論是在異步操作的執(zhí)行之前或執(zhí)行之后,用對(duì)象的方法注冊(cè)回調(diào),回調(diào)都能一致執(zhí)行。 遭遇惡魔金字塔 項(xiàng)目需要,封裝了一個(gè)省市區(qū)的地址選擇器組件。 可以根據(jù)省份id、城市id和區(qū)id對(duì)組件設(shè)置默認(rèn)值。邏輯是這樣的: 獲取省份列表,選中默認(rèn)省...

    mj 評(píng)論0 收藏0
  • 初探Promise

    摘要:實(shí)例生成以后,可以用方法指定狀態(tài)和狀態(tài)的回調(diào)函數(shù)。語(yǔ)法該方法是的別名,用于指定發(fā)生錯(cuò)誤時(shí)的回調(diào)函數(shù)。 一 前言 本文主要對(duì)ES6的Promise進(jìn)行一些入門(mén)級(jí)的介紹。要想學(xué)習(xí)一個(gè)知識(shí)點(diǎn),肯定是從三個(gè)方面出發(fā),what、why、how。下面就跟著我一步步學(xué)習(xí)吧~ 二 什么是Promise 首先是what。那么什么是Promise呢? 以下是MDN對(duì)Promise的定義 The Prom...

    wall2flower 評(píng)論0 收藏0
  • 構(gòu)建 Web 應(yīng)用之 Service Worker 初探

    摘要:誕生之初,是單線程的。當(dāng)接收到服務(wù)端的響應(yīng)之后,便通過(guò)回調(diào)函數(shù)執(zhí)行之后的操作。沖鋒基于事件驅(qū)動(dòng)。擁有攔截請(qǐng)求消息推送靜默更新地理圍欄等服務(wù)??刂茣r(shí)處于兩種狀態(tài)之一終止以節(jié)省內(nèi)存監(jiān)聽(tīng)獲取和消息事件。支持的所有事件五銷毀瀏覽器決定是否銷毀。 這次體驗(yàn)一種新的博客風(fēng)格,我們長(zhǎng)話短說(shuō),針針見(jiàn)血。 showImg(https://segmentfault.com/img/remote/14600...

    voidking 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<