2016-12-15 35 views
-1

我想做出如下結構: 包含所有文件的一個文件存在於我的項目中。每個文件都包含一些exports函數。現在,每個文件都相互依賴,所以需要逐個調用sequential。採取以前的文件的響應,並基於該文件進行下一個文件處理。我不想在每個函數/文件中使用require()callback()NodeJS不需要該文件內的文件調用功能。那可能嗎?

app.js

try { 
    fiber(function() { 
     var obj1 = await(someAsyncMethod(defer())); 
     var obj2 = await(anotherAsyncMethod(obj1, defer())); 
     var result = await(lastAsyncMethod(obj2, defer())); 
    }); 
} catch(err) { 
    //TODO Handle error 
} 

請給我一些相關的解決方案。

+0

請嘗試重新輸入您的問題。目前還不清楚你想知道什麼以及你想實現或避免什麼。在目前的形式中,你的問題並沒有太大的感覺。 –

+0

@ t.niese我實際上想在每個文件中使用'module.exports'從該函數獲取'return'值,並在另一個函數中使用返回值。所有這些管理一個文件中的所有文件。 – higunjan

回答

0

如果您需要逐一調用您可以始終使用ASYNCwaterfall它將確保每個將他們的結果傳遞給下一個。但是,如果任何任務將錯誤傳遞給自己的回調,則不執行下一個函數,並立即調用主回調並返回錯誤。

async.waterfall([ 
    function(callback) { 
     callback(null, 'one', 'two'); 
    }, 
    function(arg1, arg2, callback) { 
     // arg1 now equals 'one' and arg2 now equals 'two' 
     callback(null, 'three'); 
    }, 
    function(arg1, callback) { 
     // arg1 now equals 'three' 
     callback(null, 'done'); 
    } 
], function (err, result) { 
    // result now equals 'done' 
}); 
相關問題