validateInput = function(req) {
async.waterfall([
function(callback){
if(req.body.username == null)
return 'Username cannot be null';
callback(null);
}, function (callback){
if(req.body.name == null)
return 'Name cannot be null';
callback(null); //**Return whatever you want to return here**
}
],function(err){});
}
ここで生じている コールバック(NULL、X)
別のケースは完全にあなたのユースケース手段に依存するようにあなたが何かを使用することができ、このコールバックを使用して、あなたは、この関数の呼び出しになりたいんしながら、非同期かどうか。 この関数を呼び出す箇所からコードスニペットを私に提供した場合、私はもっと助けになることができます。以来、あなたはおそらく、関数からのすべての結果を無視することができ、あなたのユースケースについて
validateInput = function(req) {
async.waterfall([
function(callback) {
if (req.body.username == null)
return callback(new Error('Username cannot be null'));
callback(null, 'username is ok');
},
function (resultFromPreviousCallback, callback) {
if (req.body.name == null)
return callback(new Error('Name cannot be null'));
callback(null, 'name is ok');
}
],
function(err, resultFromLastCallback) {
// if err is null, all async.waterfall functions
// did pass, otherwise, you get the first error
// you can safely ignore `resultFromLastCallback`...
});
// you correctly do not return anything, here,
// since this function is asynchronous...
}
:
返品の意味は? req本体に正しいデータがあることを確認していますか? –
Req.bodyに正しいデータがあることを確認してください。しかし、 'validateInput(req).length'を呼び出すと、'不定型の長さ 'というプロパティを読み取れません。つまり、関数は何も返しません。関数が非同期であるため、非同期のウォーターフォールの内部で何かをスキップするようです。 – NoName2
'validateInput(req)'戻り値は常に* undefined *になります。私の答えは、 'async.waterfall()'の使い方を理解するのを参照してください... – MarcoS