请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

yield handler.call(this,next);问题

https://img1.sycdn.imooc.com/szimg//57c183ec00014a0d11000557.jpg

老师,你好,错误提示 定位到这一行代码,handler没有定义? 要怎么解决呢?

yield handler.call(this,next);
wechat.reply.call(this);

对这2行代码也不清楚~ 能否解释一下,谢谢!




正在回答 回答被采纳积分+3

3回答

沙漠江河 2017-07-21 21:39:50

TypeError: Cannot read property 'call' of undefined

能帮我分析一下这是怎么回事吗

1 回复 有任何疑惑可以回复我~
Scott 2017-07-22 14:46:49

是外面没有传进来用来回复的逻辑,这里拿不到这个参数了,代码流程是这样:


// reply.js
export.reply = function *(next) {
  // 各种回复策略
  this.body = '回复的内容'
}
// app.js
app.use(wechat(wechatOps, reply.reply))
// g.js
module.exports = function(opts, handler) {
  var wechat = new Wechat(opts)
  return function *(next) {
    // ...
    // 这里的 handler 就是 app.js 里面传进来的 reply.reply
    yield handler.call(this, next)
    wechat.reply.call(this)
  }
}


0 回复 有任何疑惑可以回复我~
Scott 2016-08-28 05:17:20

可以往前面翻一番其他同学的提问哦。这里的reply要从app.js use 中间件的时候作为参数传进去,就是用来回复的reply.reply

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信