泛舟湖上清波郎朗
2022-05-26 11:05:48
我有一個回調(diào)函數(shù),它從數(shù)據(jù)庫中返回一個對象。但是,在我的 async.waterfall 中,函數(shù) 'external' 不會等待對象完全加載,這意味著傳入時它是未定義的。這意味著我的最終錯誤是TypeError: Cannot read property 'replace' of undefined. 我究竟做錯了什么?function loadModelInstance (name, callback) { Model.findOne({ name: name }, function (_err, result) { if (result) { return callback(_err, result.content) } })}function generatedNow (modelInstance) { generatedKeys = generatedKeys.concat(getAllMatches(generatedRegexp, modelInstance.replace(/(\n|\r)/g, '')));}async.waterfall( [ function loadTemplate (wfaCallback) { loadModelInstance(name, function (_err, modelInstance) { wfaCallback(_err, modelInstance) }) }, function external (modelInstance, wfaCallback) { generatedNow(tracking, message, modelInstance, placeholders, function (err, updatedPlaceholders) { }) }, ], function (err) { // Node.js and JavaScript Rock! });
1 回答

互換的青春
TA貢獻1797條經(jīng)驗 獲得超6個贊
您能否提供更多詳細信息。你在哪里調(diào)用“generateNow”函數(shù)。我沒有看到“generateNow”的函數(shù)調(diào)用。
看起來您沒有正確使用參數(shù)順序。下面的代碼應(yīng)該可以工作。
async.waterfall(
[
function loadTemplate(wfaCallback) {
loadModelInstance(name, function(_err, modelInstance) {
wfaCallback(_err, modelInstance);
});
},
function external(err, modelInstance, wfaCallback) {
generatedNow(modelInstance, tracking, message, placeholders, function(
err,
updatedPlaceholders
) {});
}
],
function(err) {
// Node.js and JavaScript Rock!
}
);
添加回答
舉報
0/150
提交
取消