蓝鸟承诺没有当时

时间:2016-11-07 18:19:19

标签: node.js bluebird

用例是:我有一个事件处理程序,可以进行一些处理。它调用一个返回promise的函数。我需要保证函数最终完成或失败,但是,之后我不需要做任何额外的处理。这似乎有效,但看起来不好做法:

function onMyEvent() {
  return promisifiedFunction()
  .catch( //log error );
}
function someFunction() {
  emit(‘myevent’);
}

这种不良做法是否有没有捕获?它似乎工作正常。

我认为我不需要return,因为我可以发射,但我想如果我想抓住错误就需要{/ p>

1 个答案:

答案 0 :(得分:0)

承诺,使用.then.catch运行承诺。或者至少开始运行它。 .catch函数只是Promise的不同路径,即发生异常时。

如果您在没有.then的情况下运行承诺,承诺将以静默方式解决,并且仍然可以输入.catch个函数。

如果您在没有.catch的情况下运行承诺,则所有.then函数仍然可以工作/链,并且会抛出任何异常。

你正在做的事情是好的,如果你不关心结果或没有链接承诺,你甚至可能不需要退货声明。