setInterval中的电子渲染器进程无法使用ipcRenderer.send()

时间:2016-11-28 06:52:47

标签: javascript setinterval electron

需求:

渲染器进程需要将数据发送到主进程。

我的代码:

//index.js (renderer process)
const {ipcRenderer} = require('electron')

class WebWindow {
  constructor() {

    ...

    setInterval(() => {
      this.foo()
    }, 2000)

    // or 

    let that = this
    setInterval(function() {
      thar.foo()
    }, 2000)


  }

  foo () {
    data = {}
    ipcRenderer.send('async-cookies', data)
  }
}

问题 我收到错误:

Uncaught Exception:
TypeError: Cannot read property 'send' of undefined
    at Function.eval

Semms在setInterval中不能使用ipc吗?

我该怎么做..

谢谢!

1 个答案:

答案 0 :(得分:0)

不需要在WebWindow类中定义另一个函数,也不需要在箭头函数内重新声明 this

//index.js (renderer process)
const {ipcRenderer} = require('electron')

class WebWindow {
  constructor() {

    setInterval(() => {
      ipcRenderer.send('async-cookies', data)
    }, 2000)
  }
}