繁体   English   中英

来自外部必需的javascript文件的nodejs异步瀑布使用功能

[英]nodejs async waterfall use function from external required javascript file

我对Node.js相当陌生,为了使我的代码简短,希望我可以使用异步瀑布式函数列表中包含的.js文件中的函数。 我试图包括一个函数,并得到“ TypeError:回调不是函数”异常或“无法读取未定义的属性'Symbol(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;

您面临的问题是要将函数externalfunc1导出为整个模块。

var module1 = require('./lib/module1.js')
module1  === externalfunc1

可以将导出更改为:

module.exports = { externalfunc1 }

或导入为:

var externalfunc1 = require('./lib/module1.js')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM