webContents.send e ipcRenderer.on no funciona

Soy bastante nuevo en NodeJS, pero tengo bastante experiencia con Vanilla JS.

En el siguiente código, ¿qué estoy haciendo exactamente mal aquí?

Noconsole.log cualquier cosa en la consola de desarrollador de la aplicación, ¿así que supongo que el canal de comunicación está roto de alguna manera?

Tiene algo que ver con el hecho de quereaddir es así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
 })

Aquí hay una CODEPEN con TODO el código.

Solució

Resulta envolverwebContents.send en otra función hizo el truco. Sin embargo, no estoy seguro de por qué este es el caso.

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

¿Alguien querría explicarme por qué tengo que envolverwebContents.send dentro de otra función para que funcione correctamente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta