webContents.send e ipcRenderer.on Não está funcionando

Sou bastante novo no NodeJS, mas tenho bastante experiência com o vanilla J

No código a seguir, o que exatamente estou fazendo de errado aqu

Não fazconsole.log qualquer coisa no console do desenvolvedor do aplicativo, então estou assumindo que o canal de comunicação está quebrado de alguma forma?

Tem algo a ver com o fato de quereaddir é assíncrono?

index.js
fs.readdir(__dirname, (err, files)=>{
  files.forEach((file, index)=>{
    console.log('display', __dirname+'\\'+file) // this prints everything as expected
    mainWindow.webContents.send('display', __dirname+'\\'+file)
    // mainWindow.send(...) doesn't work either
  })
})
index.html
const electron = require('electron')
const {ipcRenderer} = electron
const con = document.getElementById('con')

ipcRenderer.on('display', (e, arg)=>{
  const div = document.createElement('div')
  const txt = document.createTextNode(arg)
  div.appendChild(txt)
   con.appendChild(div)

   console.log(e)   // neither this
   console.log(arg) // nor this prints anything to the app's developer console
 })

Aqui está um CODEPEN com TODO o código.

Soluçã

Acontece que a embalagemwebContents.send em outra função fez o truque. No entanto, não sei por que esse é o cas

mainWindow.webContents.on('did-finish-load', ()=>{
  mainWindow.webContents.send('display', __dirname+'\\'+file)
})

Alguém quer me explicar por que eu tenho que embrulharwebContents.send em outra função para que funcione corretamente?

questionAnswers(1)

yourAnswerToTheQuestion