包装函数后无法读取属性

时间:2016-01-12 21:58:36

标签: javascript mysql meteor

var sync = Meteor.wrapAsync(connection.query);
var rows = sync(selectMailgunChecked);
var emails = rows.map(function(a) {
     return a.email
});
var from = 'sample@email.com';
emails.forEach(function(entry) {
    mailgunSend( entry, from, contentHTML, contentRAW, subject, tags);
});

上面的代码(来自connection.query的{​​{1}}的包裹函数在Meteor app中使用)给了我一个恐怖:

  

无法读取未定义的属性'typeCast'

它以某种方式与node-mysql和外部库(来自node-mysql)sync(selectMailgunChecked)相关:

Connection.js

我的代码中的每个变量都已定义并成功传递。这可能有什么不对?

1 个答案:

答案 0 :(得分:2)

this.config在这一行中

query.typeCast = this.config.typeCast;

undefined

您必须通过将其作为第二个参数传递来定义执行wrap异步函数this的上下文(connection.query

var sync = Meteor.wrapAsync(connection.query, connection);