簡體   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