Electron学习笔记:渲染进程向主进程注册回调的坑

以下代码会出现错误
// 主进程
const el = require(‘electron’);
el.app.testMain = {
testName: ‘main process object’,
testCallback: function(callback) {
callback.apply(this);
}
};

// 渲染进程
const mt = require(‘electron’).remote.app.testMain;
mt.testCallback(function() {
console.log(this.testName);
});

渲染进程的回调方法在主进程中调用时,被封装成一个名为callInRenderer的方法,因此使用apply绑定this时,并没有实际绑定到渲染进程的回调方法上面。
以下代码可解决:
// 主进程
const el = require(‘electron’);
el.app.testMain = {
testName: ‘main process object’,
testCallback: function(callback) {
callback.apply(null, [this]);
}
};

// 渲染进程
const mt = require(‘electron’).remote.app.testMain;
mt.testCallback(function(ref) {
console.log(ref.testName);
});

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理