我相信我理解基本形式的回調設計模式。然而,我不知道是否以及如何將這種設計模式應用於這種更復雜的情況。應用Node-JS的回調設計模式
我正在寫一組JavaScript函數用於服務器端。如果可能的話,這些函數必須返回從本地數據庫獲取的數據,否則返回來自外部API的數據。我想要做的是,在總結:
//dataProvider.js
function DataProvider (dbCredentials, apiCredentials) {
DB = require('./dbStuff');
API = require('./apiStuff');
this.db = new DB(dbCredentials);
this.api = new API(apiCredentials);
this.getSpecificData = getSpecificDataWrapper(this.db, this.api);
}
function getSpecificDataWrapper(db, api) {
return function (extraQueryInfo) {
var result = db.genericGetFunc(specificDBQuery);
if (!satisfyingResult(result)) {
result = api.genericGetFunc(specificAPIQuery);
return result;
}
}
當調用從主app.js
文件這一功能,我想這樣做,因爲dataProviderInstance.getSpecificData(extraQueryInfo)
。現在我有一個類似的結構設置爲執行查詢的數據庫和API函數。但由於這些查詢需要時間,所以getSpecificData
總是返回undefined。
由於代碼在不同的文件中,使用這麼多回調會讓我瘋狂。那麼如何在這兩個或更多級別的函數調用中使用回調?
您是否嘗試過使用[無極](https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Reference/Global_Objects/Promise)在你的代碼中? – megapctr