gpt4 book ai didi

javascript - Meteor js 类和内容

转载 作者:搜寻专家 更新时间:2023-11-01 00:00:33 24 4
gpt4 key购买 nike

我试图在我的项目中使用 meteor 类。在我的类里面,我使用了一个 npm 模块 nodemailer,它提供了一个自定义处理程序来像这样设置套接字:

var nodemailer = require('nodemailer');

var transport = nodemailer.createTransport({....});

transpot.getSocket = function (options, callback) { // <-- here
console.log('get socket');
}

所以我试着用类将它包装在 meteor 代码中:

var nodemailer = Meteor.npmRequire('nodemailer');

class TestNodemailerMeteor {

constructor(options) {
//....
this.name = options.name;
}
initMailer(){
this.transport = nodemailer.createTransport({//set options});

this.transport.getSocket = this.getSocket;


}
getSocket(options, callback){
//
console.log(this.name); // this.name is undefined, lost this context here
}
}

问题是,当 transport.getSocket 从模块中被调用时,我失去了包含所有变量和方法的类上下文。有没有办法在不丢失类上下文的情况下将模块函数附加到类对象方法?

最佳答案

这应该可以用 Function.prototype.bind() 来实现.试试这个:

    this.transport.getSocket = this.getSocket.bind(this);

这可能是也可能不是在这里使用 bind 的正确方法,但希望这会引导您进入正确的方向。

关于javascript - Meteor js 类和内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35532422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com