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

来源:

qq_陈被单_0

2016-08-27

http://szimg.mukewang.com/57c183ec00014a0d11000557.jpg

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

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

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




写回答

3回答

沙漠江河

2017-07-21

TypeError: Cannot read property 'call' of undefined

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

1
0

Scott

2017-07-22

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


// 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
0

Scott

2016-08-28

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

0
0

7天搞定Node.js微信公众号

Koa框架、ES2015新特性、MongoDB,开发微信公众号

1742 学习 · 787 问题

查看课程