electron 电子网络请求禁用对话框...程序冻结

but5z9lq  于 2023-02-06  发布在  Electron
关注(0)|答案(1)|浏览(190)

我通过电子使用net.request,有时会遇到类似

的错误
这是一个电子页面的代码样本

const { app } = require('electron')
app.whenReady().then(() => {
  const { net } = require('electron')
  const request = net.request('https://github.com')
  request.on('response', (response) => {
    console.log(`STATUS: ${response.statusCode}`)
    console.log(`HEADERS: ${JSON.stringify(response.headers)}`)
    response.on('data', (chunk) => {
      console.log(`BODY: ${chunk}`)
    })
    response.on('end', () => {
      console.log('No more data in response.')
    })
  })
  request.end()
})

所以这个错误对我来说不是什么大问题,但是当这个对话框弹出时,我希望它忽略那个错误,继续运行程序。相反,它会冻结,直到我单击OK
我正在运行一个服务器,我将不得不放弃错误的请求,但我不希望我的服务器完全停止,直到互动,我如何禁用此框或忽略错误?

jbose2ul

jbose2ul1#

process是nodejs的内置变量,不需要定义,当异常发生时,nodejs会正常工作并提示错误对话框,除非它的方法被定义为覆盖程序中的任何地方。

process.on('uncaughtException', function (err) {})

参考to the docs,任何事件都可以在程序中被重写,只需在程序中重新定义事件的方法。
举个例子,如果我在程序中使用这段代码,我看不到任何与错误相关的东西,因为这个函数已经覆盖了内置的nodejs行为。

相关问题