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

資訊專欄INFORMATION COLUMN

JS異步那些事 三 (Promise)

wenzi / 2288人閱讀

摘要:異常處理異常處理一直是回調的難題,而提供了非常方便的方法在一次調用中,任何的環節發生,都可以在最終的中捕獲到錯誤處理基本的小結具體的很多的用法可以參考阮一峰的入門教程,還有就是上面提到的電子書。

JS異步那些事 一 (基礎知識)
JS異步那些事 二 (分布式事件)
JS異步那些事 三 (Promise)
JS異步那些事 四(HTML 5 Web Workers)
JS異步那些事 五 (異步腳本加載)

Promise,Deferred 對象 前戲

先來談談jquery中的promise的使用,來看一個例子
原本寫一個小動畫我們可能是這樣的

 

但是如果我們使用promis對象的話,就可以使得代碼更加簡單易懂

看了上面的例子大概對promise的作用有一定的了解了吧,那就來說說promis的原理吧

Promise對象方法

對于DOM,動畫,ajax相關方法,都可以使用 promise 方法。調用 promise 方法,返回的是 promise 對象??梢枣準秸{用 promise 方法。

比如jquery中的ajax的 $.post $.get $.ajax 等方法,實際上都是默認調用了promise方法,然后返回了一個promise對象

promise對象常見的方法有三個 : done , fail , then 。

jquery 這里的接口方法太多了,就跟早期的事件方法綁定一樣, live , delegate , bind ,最終還是歸為 on

deferred對象方法

deferred 對象呢,也就是使用 $.Deferred() 方法,以及 $.when() 等方法創造出來的對象,它可以理解為一個升級版特殊的的promise對象
來看看一個例子

  

Promise構造函數接受一個函數作為參數,該函數的兩個參數分別是resolve和reject。

  

上面代碼中,timeout方法返回一個Promise實例,表示一段時間以后才會發生的結果。過了指定的時間(ms參數)以后,Promise實例的狀態變為Resolved,就會觸發then方法綁定的回調函數。

異常處理

  異常處理一直是回調的難題,而promise提供了非常方便的catch方法:在一次promise調用中,任何的環節發生reject,都可以在最終的catch中捕獲到:

Promise.resolve().then(function(){
    return loadImage(img1);
}).then(function(){
    return loadImage(img2);
}).then(function(){
    return loadImage(img3);
}).catch(function(err){
    //錯誤處理
})
基本的 api

Promise.resolve()
Promise.reject()
Promise.prototype.then()
Promise.prototype.catch()
Promise.all()
Promise.race()

小結

具體的很多的用法可以參考阮一峰的 http://es6.ruanyifeng.com/#docs/promise 入門教程,還有就是上面提到的電子書 http://liubin.org/promises-book/#introduction。

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

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

相關文章

  • JS異步那些 四(HTML 5 Web Workers)

    摘要:向添加一個事件監聽器當傳遞消息時,會執行事件監聽器中的代碼。終止當我們創建對象后,它會繼續監聽消息即使在外部腳本完成之后直到其被終止為止。 JS異步那些事 一 (基礎知識)JS異步那些事 二 (分布式事件)JS異步那些事 三 (Promise)JS異步那些事 四(HTML 5 Web Workers)JS異步那些事 五 (異步腳本加載) 什么是 Web Worker? 當在 HTML ...

    ZoomQuiet 評論0 收藏0
  • JS異步那些 一 (基礎知識)

    摘要:異步那些事一基礎知識異步那些事二分布式事件異步那些事三異步那些事四異步那些事五異步腳本加載事件概念異步回調首先了講講中兩個方法和定義和用法方法用于在指定的毫秒數后調用函數或計算表達式。功能在事件循環的下一次循環中調用回調函數。 JS異步那些事 一 (基礎知識)JS異步那些事 二 (分布式事件)JS異步那些事 三 (Promise)JS異步那些事 四(HTML 5 Web Workers...

    李濤 評論0 收藏0
  • JS異步那些 五 (異步腳本加載)

    摘要:遵循的是異步模塊定義規范,遵循的是通用模塊定義規范。不同的腳本加載這個模塊,得到的都是同一個實例。關于異步那些事就寫到這里了,很多地方理解的不夠深刻希望大家多多指教。 JS異步那些事 一 (基礎知識)JS異步那些事 二 (分布式事件)JS異步那些事 三 (Promise)JS異步那些事 四(HTML 5 Web Workers)JS異步那些事 五 (異步腳本加載) 異步腳本加載 阻塞性...

    terasum 評論0 收藏0
  • 2018 淺談前端面試那些

    摘要:聲明的變量不得改變值,這意味著,一旦聲明變量,就必須立即初始化,不能留到以后賦值。 雖然今年沒有換工作的打算 但為了跟上時代的腳步 還是忍不住整理了一份最新前端知識點 知識點匯總 1.HTML HTML5新特性,語義化瀏覽器的標準模式和怪異模式xhtml和html的區別使用data-的好處meta標簽canvasHTML廢棄的標簽IE6 bug,和一些定位寫法css js放置位置和原因...

    LiuRhoRamen 評論0 收藏0

發表評論

0條評論

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