我正在学习bacon.js 我写了这样的测试脚本。
var bacon = require('../nodejs/node_modules/baconjs').Bacon;
function TestClass(URL,port,username,password)
{
this.funcCheck = function( data , rescallback)
{
console.log(" data: " + data);
if(data.length > 4)
{
rescallback(null,data.substring(0, 2));
}
else
{
console.log("Calling callback with error data: " + "error");
rescallback("Too short",null);
}
}
}
var tclass = new TestClass();
var names = ['Geroge','Valentine', 'Oz','Nickolas'];
var results = [];
var read = bacon.fromNodeCallback( tclass.funcCheck, bacon.fromArray(names) )
stream.onValue(function(value)
{
console.log(" onValue " + value);
results.push( value);
});
stream.onError( function(error)
{
console.log(" OnError " + error);
// results.push( err);
});
console.log(" results " + results);
问题是onError永远不会被调用,尽管" Oz"少于4个字符,我知道rescallback被调用1个非空参数。 我可以看到日志打印输出。 另一件事是,如果我更改onError的定义并将其放在onValue之前,onError将被正确调用一次,并且永远不会调用onValue。 我确定我错过了一些非常基本的东西,但我不知道到底是什么。 我做错了什么? 感谢