功能未被识别为功能?

时间:2016-02-04 16:34:05

标签: javascript ecmascript-6

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:侦听器必须是函数

为什么会这样?

1 个答案:

答案 0 :(得分:1)

您正在传递通话结果undefined - 而非功能。我相信你在找

store.changes(() => test(this, 'posts'));