【发布时间】:2013-11-13 02:45:54
【问题描述】:
代码.js
var Util = function(){
function factorial(n, callback){
if(n == 1){
return n;
} else {
return n*factorial(n-1, callback);
}
/*callback(returnValue); */ // Where should this line go?
}
return{
factorial: factorial
};
};
exports.Util = Util;
Test.js
var vows = require('vows'),
assert = require('assert'),
Util = require('./Code').Util;
var u = new Util();
vows.describe('Testing Utils').addBatch({
'Test Factorial async':{
topic: function(){
u.factorial(5, this.callback);
},
'The output must be 120': function(result, ignore){
assert.equal(result, 120);
}
}
}).run();
在 node.js 上运行
> node Test.js
我得到错误回调未触发。
如果我能够放置这个脚本,我的理解是在我的函数返回之前:
callback(computeValue); 恕我直言,这应该可以工作。如果我错了,请纠正我。
但是,我不明白我可以在哪里插入这个。
感谢您的宝贵时间!
【问题讨论】:
-
@Downvoter 需要解释一下吗?
标签: javascript node.js asynchronous recursion vows