干净的代码和嵌套的承诺
Clean code and Nested promises
使用嵌套promise编写干净代码的正确策略是什么?使用promise背后的一个想法是去掉嵌套回调(也称为callback hell
)。即使在使用promise时,嵌套有时似乎也是不可避免的:
User.find({hande: 'maxpane'})
.then((user) => {
Video.find({handle: user.handle})
.then((videos) => {
Comment.find({videoId: videos[0].id})
.then((commentThead) => {
//do some processing with commentThread, vidoes and user
})
})
})
有没有一种方法可以摆脱嵌套,使代码更加"线性"。事实上,这段代码看起来与使用回调的代码没有太大区别。
使用promise的最大优势是链接。这就是你应该如何正确使用它:
User.find({handle: 'maxpane'})
.then((user) => {
return Video.find({handle: user.handle})
})
.then((videos) => {
return Comment.find({videoId: videos[0].id})
})
.then((commentThead) => {
//do some processing with commentThread, vidoes and user
})
每次在.then
内部返回Promise时,它都被用作下一个.then
回调的Promise。
相关文章:
- 嵌套承诺会产生类似的效果
- 如何展平嵌套承诺依赖项
- 嵌套承诺
- 转换嵌套'对于'循环成一个承诺,为了一个承诺?嵌套承诺
- 嵌套承诺与q-io
- 如何将嵌套承诺与Q连锁?我可以'Don’我不能让它们按正确的顺序运行
- 在嵌套承诺链中重新引发异常
- 此代码中嵌套承诺的目的是什么
- 嵌套承诺执行不同步
- AngularJs $q.all 不会用混合的嵌套承诺来解决
- 使用模拟工厂在茉莉花中测试嵌套承诺
- angular.foreach 解析嵌套承诺
- 如何避免用$q嵌套承诺
- 如何返回嵌套承诺的结果
- Keystone.js嵌套承诺 -> foreach -> 列表查找范围问题
- 在 node.js 中返回延迟嵌套承诺
- 在 javascript 中进行嵌套承诺调用
- 嵌套承诺被卡住
- 简化嵌套承诺和循环
- 优化嵌套承诺