当前位置:  开发笔记 > 编程语言 > 正文

避免忘记承诺回报

如何解决《避免忘记承诺回报》经验,为你挑选了0个好方法。

当我使用promises来表示作业之间的依赖关系时,解析后的值变得不重要,我可能会忘记某个地方的返回.例:

startSomething().then(function() {
  Q.all(tasks.map(function(task) { return task.startIt(); }))
}).then(collectOutput).done();

这里Q.all返回一个承诺,我本应该返回.不这样做意味着collectOutput在调用时,所有任务都已启动,但无法保证它们已完成.

这种错误导致竞争条件,并且可能极难再现和追踪.所以我想知道,是否有一些工具可以帮助检测并避免这种问题?也许有些promise库会在一个函数返回undefined时发出警告?或者检测没有听众的承诺,Bluebird对未处理拒绝的方式呢?

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有