【发布时间】:2013-03-25 18:41:30
【问题描述】:
我想在我的 mocha 测试中保存两个 Mongoose 对象 - 并在两者都成功时收到通知。我正在使用 asyncjs 库来实现这一点。
beforeEach (done) ->
obj1 = new Person({ name: 'Jon' })
obj2 = new Person({ name: 'Dan' })
console.log obj1 # ... { name: 'Jon', _id: 4534534543512 }
async.list([
obj1.save
obj2.save
]).call().end( (err, res) ->
return done(err) if err
done()
)
您可以在 console.log 中看到 obj1 被设置为 MongoDB 文档 - 但是当我想使用 save 函数将它们持久保存到数据库时,尝试执行此操作时出现以下错误:
TypeError: Cannot read property 'save' of undefined
如果我用 say 替换 async.list 中的两个函数
console.log
console.log
代码执行得很好......另外,如果我像这样将这两个对象保存在 async.list 函数之外
obj1.save()
obj2.save()
它也执行得很好,没有错误。
我被难住了。
【问题讨论】:
-
另外值得注意的是,有两个类似命名的异步库:async 和 asyncjs。上面的例子来自 asyncjs - 但更好的库是 async,而使用的方法是:parallel。