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

資訊專欄INFORMATION COLUMN

初探 es6 promise

paraller / 3240人閱讀

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

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

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

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

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

相關文章

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

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

    JerryWangSAP 評論0 收藏0
  • ES6初探

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

    tianyu 評論0 收藏0
  • Promise初探

    摘要:可以根據省份城市和區對組件設置默認值。獲取省份獲取城市獲取區出現層嵌套的回調,這就是傳說中的惡魔金字塔。相比回調嵌套,層次更分明,可讀性強。基本原理學習無論是在異步操作的執行之前或執行之后,用對象的方法注冊回調,回調都能一致執行。 遭遇惡魔金字塔 項目需要,封裝了一個省市區的地址選擇器組件。 可以根據省份id、城市id和區id對組件設置默認值。邏輯是這樣的: 獲取省份列表,選中默認省...

    mj 評論0 收藏0
  • 初探Promise

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

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

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

    voidking 評論0 收藏0

發表評論

0條評論

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