Я работаю с Электроном, и я использую три страницы.Index.html
, куда я отправляю запрос, Main.js
, где обрабатывается запрос, и Page.js
, где создается какая-то длинная асинхронная функция.
Моя проблема в том, что я не знаю, как сделать основной файлчтобы дождаться завершения процесса Page.js
перед отправкой ответа на html-страницу.
Я попытался использовать обещание отправить данные обратно в html, но получаю сообщение об ошибке, потому что в нем указано .then()
functionне является функцией.
Index.html
document.querySelector('#formhomepage').addEventListener('submit', function(e) {
e.preventDefault();
let date = document.getElementById("date-input").value;
const {ipcRenderer} = require('electron')
// send InputDate to main.js
ipcRenderer.send('asynchronous-message', date )
// receive output from main.js
ipcRenderer.on('asynchronous-reply', (event, arg) => {
console.log(arg);
document.getElementById('results').innerHTML = arg;
});
});
Main.js
ipcMain.on('asynchronous-message', (event, inputDate) => {
var excel_n1 = require('./page.js');
excel_n1(inputDate).then(result => event.sender.send('asynchronous-reply', result ) )
.catch(error => {console.log("error")});
});
page.js
module.exports = async function(inputDate){
// long await function with a lot of async and await
}