以下代码可以正常使用:
Field.findById(fieldIdArray[0], function(err, field){
console.log(field);
return next();
});
以下代码给出了erroruncaught TypeError:无效的select()参数
async.map(fieldIdArray, function (fieldId, callback) {
console.log(fieldId);
Field.findById(fieldId, function (err, field){
if(err) callback(err);
if(!field) callback('Field not found.');
field.remove(function (err){
if(err) callback(err);
callback(null, fieldId);
});
}, function (err, results){
if(err) next(new Error('Something went wrong with deleting fields.'));
return next();
});
});
console.log控制台注销了正确的fieldId,但为什么Field.findById会抛出错误?
答案 0 :(得分:3)
您将3个参数传递给Field.findById
:fieldId
(可能是id)和2个函数。第一个函数被解释为可选的fields
参数,但是因为错误说该参数必须是字符串或对象。你可能想把额外的函数作为第三个参数传递给async.map
,因为这需要3个参数而你只能传递2个。