javascript - 函数不被识别为函数?

标签 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') 识别为函数,它会抛出以下错误:

Uncaught TypeError: listener must be a function

这是为什么?

最佳答案

您正在传递调用的结果,未定义 - 不是函数。我相信您正在寻找

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

关于javascript - 函数不被识别为函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35206484/

相关文章:

javascript - 使字体大小取决于 div 大小

javascript - 显示从文件选择器中选择的图像的图像缩略图

javascript - 如何使用 React 从 ajax 调用成功后重定向?

reactjs - 如何使用函数组件指定构造函数(粗箭头语法)?

ecmascript-6 - ES6 仅部分 params 对象的默认值

javascript - 使用 CSS3 动画制作幻灯片

javascript - 使用挖空样式绑定(bind)隐藏表格行

javascript - ES6/Babel 使用 Set 传播错误

javascript - 父级的 componentDidMount() 未被调用

javascript - 关于产量的发电机使用情况