我对nodejs相当陌生,为了保持我的代码简洁,希望我可以使用我在异步瀑布函数列表中包含的.js文件中的函数。我试图包含一个函数,并且得到一个' TypeError:回调不是函数'异常或'无法读取属性'符号(Symbol.toStringTag)'未定义的'。我搜索并搜索过,找不到答案,但希望有人能给我最好的方法,就像回调和功能一样,我不确定最佳解决方案是什么。
我希望我的代码会是这样的:
var module1 = require('./lib/module1.js'),
module2 = require('./lib/module2.js');
async.waterfall([
module1.externalfunc1,
module2.externalfunc2
], function (err, result) {
if (err) {
console.log('ERROR: ');
console.log(err);
} else {
console.log('Completed streaming1');
console.log(result);
}
我的猜测是我应该将瀑布函数放在另一个函数中,比如function(){module1.externalfunc;},function(){module2 ...
认为我只是不能很好地理解回调,因为我不确定外部函数是否会知道"回调"因为它的代码之外有瀑布。但我必须相信这是可能的。
感谢您的帮助。
意思是说,我已经使用我定义的函数创建了externalfunc1,我将其导出,因此在文件中有:
function externalfunc1(param1, callback){...}
module.exports = externalfunc1;
答案 0 :(得分:0)
您面临的问题是您将函数externalfunc1
导出为整个模块。即。
var module1 = require('./lib/module1.js')
module1 === externalfunc1
将导出更改为:
module.exports = { externalfunc1 }
或导入为:
var externalfunc1 = require('./lib/module1.js')