是否有相应的订阅错误?

时间:2014-04-09 16:20:38

标签: bacon.js

如果函数立即产生错误,就像下面的情况一样,onError将永远不会被调用,因为错误已经在 onError 附加时发送。如果这是一个值而不是一个错误,那么可以使用 subscribe 方法而不是 onValue ,但如果它出现错误,那么会有什么追索权? ?

var legacyNodeFunction = function(callback) {
  callback(new Error('I fail IMMEDIATELY, not async!'), null)
}

function doThingsWithLegacyFunction() {
   return Bacon.fromNodeCallback(legacyNodeFunction)
}

var stream = doThingsWithLegacyFunction();
stream.onError(function(err) {
  console.log("this text will never be printed")
})

1 个答案:

答案 0 :(得分:0)

实际上subscribe函数会为您提供值和错误。

也许Promise更适合您的特殊需求。

或者您可以使用.delay(0)强制它异步,以便调用两个处理程序。