我不太明白,为什么这不起作用:
async.parallel([
SomeStuff.find({}).remove,
SomeStuff2.find({}).remove,
SomeStuff3.find({}).remove
], done);
虽然这样可以正常
async.parallel([
function(callback) {
SomeStuff.find({}).remove(callback)
},
function(callback) {
SomeStuff2.find({}).remove(callback);
},
function(callback) {
SomeStuff3.find({}).remove(callback);
}
], done);
它几乎不一样吗? 第一个抛出错误:
TypeError: Object #<Object> has no method 'cast'
at Query.remove (/path/to/project/node_modules/mongoose/lib/query.js:1366:10)
感谢您的帮助:)
答案 0 :(得分:0)
问题是,当您像这样传递函数时,您将丢失函数上下文。 remove()
是原型方法,因此它依赖于this
的值是正确的。当您单独传递方法时,this
值现在已丢失,因此它无法执行this.cast()
之类的操作。