回答
您可能感兴趣的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. PhantomJS的Promise框架?
- 2. 基于SMACSS的CSS框架
- 3. 转换播放框架Java Promise播放框架Scala Promise
- 4. 的XPath基于子节点
- 5. 组件基础MVC框架和基于动作的MVC框架
- 6. 将基于框架的代码迁移到基于非框架的代码
- 7. 坚持基于cookie的会话通过节点http代理
- 8. 删除节点基于子节点值
- 9. 基于父节点删除子节点
- 10. 基于最佳节点的RESTful API架构?
- 11. Spritekit框架长地节点
- 12. 断点基础框架
- 13. 如何测试Django的基于REST框架类的观点
- 14. 使用dotnet框架的asp.net核心“基于框架的部署”
- 15. 如何将节点Promise和http一起使用?
- 16. 两端渲染的节点框架
- 17. 的Neo4j - 基于节点的排名
- 18. trac基于什么框架?
- 19. 选择基于节点的其他文档中值的节点
- 20. Rest框架基于部分视图的基于类的视图
- 21. 基于树的(与基于HTML的)Web框架?
- 22. 基于PHP的PHP组件基于简单快速的框架
- 23. 节点基于链表
- 24. D3选择基于节点
- 25. 排序基于子节点
- 26. XSLT选择基于节点
- 27. 数基于相邻节点
- 28. 填充基于节点
- 29. 基于jQuery的ES6 Promise polyfill推迟
- 30. 在同级后代节点基于节点的子节点的属性值
无论我使用nodejs函数的异步工作流,我都使用Q的'denodeify'。我也尝试了一些外部库函数,它对我来说工作得很好。请尝试'Q.denodeify'。 –
2013-05-31 05:48:53
也许你应该澄清。我相信这个问题需要一个使用promise的http服务器的node.js框架,而不是一个基于promise的http请求库,其中一些答案似乎正在解决。 – Chris 2016-06-20 21:20:33