回答
您可能感興趣的Q promise library的作者Kris Kowal寫的Joey。沒有一個大的社區,但是Kris經常在freenode的#montage irc頻道上提供幫助。
對於HTTP客戶端,我喜歡http://www.npmjs.org/package/httpinvoke。
對於HTTP服務器,我喜歡https://github.com/mjackson/mach;這很棒!
再次,我也不是一個如此巨大的粉絲httpinvoke,我的工作,沒關係。但我認爲API比它需要更復雜,我覺得很難調試。我可能會錯過一些東西。
或者,我使用推薦kew(快速承諾實現)來包裝回調樣式方法。
有基於https://github.com/mzabriskie/axios
無極HTTP客戶端在瀏覽器和Node.js的
示例代碼:
// Make a request for a user with a given ID
axios.get('/user?ID=12345')
.then(function (response) {
console.log(response);
})
.catch(function (response) {
console.log(response);
});
在HTTP客戶端,有新的fetch API
https://fetch.spec.whatwg.org/
fetch()
允許你做類似的XMLHttpRequest(XHR)的網絡請求,主要區別是[它]使用的承諾,這使得一個簡單和清晰的API,避免回調地獄,不必記住的XMLHttpRequest的複雜的API
(https://developers.google.com/web/updates/2015/03/introduction-to-fetch)
一些實現:
- 瀏覽器 「聚填充」(舊版本瀏覽器)https://github.com/github/fetch
- 節點版本https://www.npmjs.com/package/node-fetch
- 跨平臺版本https://github.com/matthew-andrews/isomorphic-fetch(我不喜歡在這種情況下使用的單詞「isomorphic」...反正)
這裏是一些示例代碼:
fetch('/some/url', {method: 'get'})
.then(function(response) {
// rejoice \o/
})
.catch(function(err) {
// error :-(
});
還不大,即使在2016年後期
其他人跳過Koa.js它不支持的承諾基於「異步/等待其發電機」。
然而,我認爲你的問題的目標是更深層次的整合,這可能是我所做的:一個HTTP服務器將請求作爲承諾返回,然後可以鏈接在一起。
它基於承諾表示可以一次完成的異步任務的想法,因此服務器就像一個承諾流,我將其封裝在一個帶有承諾的回調中。
它仍然是更冷靜的潛在的(即較小的,專業化的項目)作爲有很少的代碼給它(和目前的概念坐鎮0依賴)
有在倉庫中更多這方面的細節:https://github.com/rsxdalv/unframed 其中包括建築過程的演練。使用實際可以運行的代碼Node.js v6.6
- 1. 基於SMACSS的CSS框架
- 2. 的XPath基於子節點
- 3. 轉換播放框架Java Promise播放框架Scala Promise
- 4. 將基於框架的代碼遷移到基於非框架的代碼
- 5. 堅持基於cookie的會話通過節點http代理
- 6. 基於父節點刪除子節點
- 7. Spritekit框架長地節點
- 8. 斷點基礎框架
- 9. 使用dotnet框架的asp.net核心「基於框架的部署」
- 10. 的Neo4j - 基於節點的排名
- 11. 如何將節點Promise和http一起使用?
- 12. 選擇基於節點的其他文檔中值的節點
- 13. trac基於什麼框架?
- 14. 基於樹的(與基於HTML的)Web框架?
- 15. 排序基於子節點
- 16. 填充基於節點
- 17. D3選擇基於節點
- 18. 基於節點值的XSLT選擇複選框
- 19. 基於jQuery的ES6 Promise polyfill推遲
- 20. 基於JavaScript的iPhone UI框架
- 21. 基於PHP的PDF修改框架/包
- 22. 基於DLL的應用程序框架
- 23. 什麼是基於接口的框架?
- 24. 基於開源組的框架
- 25. 基於會話的表zend框架
- 26. 基於位置的Python推薦框架
- 27. Web框架基於servlet的3.0
- 28. 'wget'基於框架的完整網站
- 29. 基於註釋的驗證框架
- 30. 基於框架的TYPO3覆蓋標題
無論我使用nodejs函數的異步工作流,我都使用Q的'denodeify'。我也嘗試了一些外部庫函數,它對我來說工作得很好。請嘗試'Q.denodeify'。 –
2013-05-31 05:48:53
也許你應該澄清。我相信這個問題需要一個使用promise的http服務器的node.js框架,而不是一個基於promise的http請求庫,其中一些答案似乎正在解決。 – Chris 2016-06-20 21:20:33