store.changes
将函数作为参数。 test
将对象及其属性作为参数:
store.changes(test(this, 'posts'))
function test (obj, prop) {
store.find().then(posts => {
obj[prop] = _.map(posts.rows, (post) => post.doc)
})
}
store.changes = (func) => {
return db.changes({
since: 'now',
live: true
}).on('change', func)
}
但出于某种原因store.changes
没有将test(this, 'posts')
识别为函数,它会引发以下错误:
未捕获的TypeError:侦听器必须是函数
为什么会这样?
答案 0 :(得分:1)
您正在传递通话结果undefined
- 而非功能。我相信你在找
store.changes(() => test(this, 'posts'));