1
我可能需要一些關於node.js應用程序的Q promise的幫助。我的使用情況如下:Q承諾:如何順序嘗試多個註冊表
- 我們需要找到(通過ID)的一些信息(比如一個數量級)
- 我們有可能包含的信息(目錄,數據庫,NoSQL的,REST服務的多個存儲庫。 ..)
- 我們有一個搜索順序。我們不希望並行搜索並獲得最快的勝利,但我們需要依次搜索一個存儲庫
- 我們可以停止搜索並忽略剩餘的存儲庫一旦我們發現信息
- 我們已經每個存儲庫都有承諾
我正在努力的是創造/返回一個承諾,當信息被發現時完成。
類似的信息(僞代碼):
var deferred = Q.defer(id)
foreach repo in repositories {
var p = repo.findById(id)
.then deferred.resolve(order)
p.waitForThePromiseToFinish
if (p.success) break
}
一個想法如何實現這一點?任何幫助表示讚賞。
非常感謝。這種模式伎倆。只需要稍微擴展它,因爲'repo.findBy()'返回一個promise,我需要結果。我需要一個'成功===錯誤'的迴應,回購回答「找不到或錯誤」。 – Juergen 2015-02-08 07:58:08
我很高興我可以提供幫助。隨時提出您遇到的任何其他問題,並提出尚未提出的承諾 - 他們將來會幫助人們 – 2015-02-08 12:25:43