成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

初探 es6 promise

paraller / 3289人閱讀

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

javascript是單線程程序,所有代碼都是單線程執(zhí)行。導致javascript的網(wǎng)絡請求都是異步執(zhí)行,異步執(zhí)行可以通過回調(diào)函數(shù)實現(xiàn):
setTimeout(callback,1000);
function callback(){
    console.log("----callback")     
    //1秒鐘才能打印,回調(diào)函數(shù)處理異步執(zhí)行的
};
但是es6推出一種新的方法new Promise()==>對象用于表示一個異步操作的最終狀態(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ù)組中又一個傳入的狀態(tài)完成就執(zhí)行
3.Promise.resolve({}) ==>返回一個成功的狀態(tài)
4.Promise.reject({}) ==>返回一個失敗的狀態(tài)
let a=new Promise((resolve,reject)=>{
    resolve(1)
    //或reject()
});
a.then(e=>{   // resolve 返回的結果
    console.log(e)  //1
}).catch(e=>{ //reject 返回的結果
    console.log(e)
});
如果我們有一個需求是需要所有3個接口的數(shù)據(jù)都返回了然后再進行操作,那么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)用一個成功的狀態(tài)
Promise.all([b1,b2,b3,b4]).then(value=>{
    console.log(value)   //  "b1", "b2", "b3" ]
})
let b5=Promise.reject("失敗")  //調(diào)用一個失敗的狀態(tài)
Promise.all([b1,b5]).then(value=>{
    console.log(value)   
}).catch(e=>{
    console.log(e,"------失敗")  //失敗
})
如果我們有一個需求是3個接口中只要有一個完成了接口請求即執(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誰先執(zhí)行完就執(zhí)行就獲取先執(zhí)行的值

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

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

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

相關文章

  • Puppeteer初探--爬取并生成《ES6標準入門》PDF

    摘要:首先介紹是一個庫,他提供了一組用來操縱的默認也就是無的,也可以配置為有有點類似于,但是官方團隊進行維護的,前景更好。使用,相當于同時具有和的能力,應用場景會非常多。 首先介紹Puppeteer Puppeteer是一個node庫,他提供了一組用來操縱Chrome的API(默認headless也就是無UI的chrome,也可以配置為有UI) 有點類似于PhantomJS,但Puppet...

    JerryWangSAP 評論0 收藏0
  • ES6初探

    摘要:可以直譯為古怪到有魅力。里面基本上這些是被弱化了的,或者說是被隱藏起來了。而之前的的語法使得入門的門檻變高了。但是,于此同時,作為語言的獨特魅力被削弱了。應該說,理解這些傳統(tǒng)的語法對也很有意義。因為畢竟這些只是被隱藏,而不是被剔除。 這兩天在看React的一些東西。接觸到了ES6。談談一些粗淺的看法。 ES6其實是個簡稱。這東西學名叫做ECMAScript 2015,或者ES 2015...

    tianyu 評論0 收藏0
  • Promise初探

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

    mj 評論0 收藏0
  • 初探Promise

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

    wall2flower 評論0 收藏0
  • 構建 Web 應用之 Service Worker 初探

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

    voidking 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<