0

下面的Node callbackonNeDB工作正常,

Datastore = require 'nedb'
db = new Datastore

db.insert a: 'Hi!', (err, docs) -> 
    console.log docs

然后尝试转换NeDB Node callbackBacon EventStream

Bacon = require('baconjs').Bacon
Datastore = require 'nedb'
db = new Datastore

insert = Bacon.fromNodeCallback db.insert, a: 'Hi!'

insert.onValue (docs) ->
    console.log docs

为什么它在下面失败了?

TypeError: Cannot call method 'push' of undefined
4

1 回答 1

1

当您通过db.insert这种方式时,您将失去其评估上下文(“this”不再是数据库)。尝试使用其他形式fromNodeCallback

insert = Bacon.fromNodeCallback(db, 'insert', {a: 'Hi!'})
于 2015-01-01T16:53:11.903 回答