有人可以解释为什么下面的回调永远不会被调用吗?
永远不会调用回调的更新工作。我错过了什么吗?
collection.update({_id:partner._id},
{$set: {
groups: newGroups
}
},
{ upsert: false, w: 1 },
function(err, status){
console.log("update callback ");
if (err){
console.log("Error updating "+err.message);
callback(false);
} else {
console.log("Record updated as "+JSON.stringify(status));
callback(true);
}
}
);
答案 0 :(得分:0)
你可以将它包装在一个带回调作为参数的函数中:
//Except for callback as a parameter, every parameter is not compulsory
function yourFunctionName(id, newGroups, callback) {
collection.update({
_id: partner._id
}, {
$set: {
groups: newGroups
}
}, {
upsert: false,
w: 1
},
function(err, status) {
console.log("update callback ");
if (err) {
console.log("Error updating " + err.message);
callback(false);
} else {
console.log("Record updated as " + JSON.stringify(status));
callback(true);
}
}
)
}
然后调用这个函数:
yourFunctionName(params, function(result) {
//Do anything with the result
});
如果您想了解回调函数的工作原理,this可能会对您有所帮助。
答案 1 :(得分:-1)
例如在node(sailsJs)
中Model.update({id:'xxxxxxxxxxxxxxxx'},{name:'Flynn'}).exec(function afterwards(err, updated){
if (err) {
//handle error here!
return;
}
console.log('Updated user to have name ' + updated[0].name);
});