Javascript Promise機制的簡單實現

2021-09-23 19:27:40 字數 1949 閱讀 4469

promise/deferred 是乙個很好的處理非同步呼叫編碼的規範,下面以nodejs**為類,來實現乙個promise/a 規範的簡單實現

/**

* created with jetbrains webstorm.

* user: xuwenmin

* date: 14-4-1

* time: 上午9:54

);// 定義promise物件

varpromise

=function

()// 繼承事件通用方法

util

.inherits

(promise

,eventemitter

);// then 方法為promise/a 規範中的方法

promise

.prototype

.then

=function

(successhandler

,errorhandler

,progresshandler)if

(typeof

errorhandler

==='function')if

(typeof

progresshandler

==='function'

)return

this;}

// 定義延遲物件

// 包含乙個狀態和乙個promise物件

vardeferred

=function

()deferred

.prototype

.resolve

=function

(obj

)deferred

.prototype

.reject

=function

(err

)deferred

.prototype

.progress

=function

(data

)// 利用乙個http請求來運用上面定義的promise/deferred

**儲存為promise.js,可以在命令列下面執行,直接輸入node promise.js,即可看到執行效果。

簡單的Apache URL Rewrite例項

下面開始講如何設定url rewrite.apache 伺服器 比如我們有新聞頁 news readmore.php?id 4875 我們要做成靜態頁 news top2007,4875.html 首先進入apache的目錄找到名為httpd.conf的檔案。本站為 apache2.2 conf h...

閉鎖CountDownLatch的簡單實現

public class testcountdownlatch catch exception e finally t.start system.out.println c start.countdown 到達此處時,由於finally中已經呼叫了三次countdown 方法,計數已經是0了 所以此...

leveldb之SkipList的簡單實現

skiplist是鍊錶的變形,它在鍊錶的基礎上給每個元素增加了乙個高度,且每個元素的高度是乙個隨機值,因此skiplist是一種隨機化的資料結構。skiplist增 刪查 改的效率都非常高,是一種典型的以空間換時間的儲存方式。常規的鍊錶如下 而相同元素對應的skiplist結構如下 由上可知,當要在...