#javascript #node.js #electron #settimeout
#javascript #node.js #electron #settimeout
Вопрос:
Привет, я вызываю ipcRenderer.send()
из index.html
файла.
То, что я пытаюсь сделать, это отложить вызов функции на 5 секунд. Однако, похоже, это не работает.
Вот что я пытаюсь сделать по существу:
setTimeout(ipcRenderer.send('startYellowApple', ["bob", "cat"]), 5000);
и вот как я выполняю это в обычной встроенной функции Javascript:
function start(){
setTimeout(ipcRenderer.send('startYellowApple', ["bob", "cat"]), 5000);
}
Я делаю что-то не так?
Однако мне удается добиться некоторого прогресса, используя этот метод.. Однако он замораживает всю мою программу electron до истечения 5 секунд, что на самом деле не идеально:
function sleep(milliseconds) {
const date = Date.now();
let currentDate = null;
do {
currentDate = Date.now();
} while (currentDate - date < milliseconds);
}
function start(){
sleep(5000);
ipcRenderer.send('startYellowApple', ["bob", "cat"]);
}
Может кто-нибудь мне помочь, пожалуйста? Спасибо!
Комментарии:
1. Вы вызываете функцию без каких-либо задержек. Синтаксис должен быть
setTimeout(() => ipcRenderer.send(...), 5000)
Ответ №1:
Проблема в том, как вы передаете свой обратный вызов функции setTimeout.
ipcRenderer.send('startYellowApple', ["bob", "cat"])
на самом деле это вызов функции, он будет вызван немедленно, вы должны обернуть вызов внутри функции, чтобы достичь того, чего вы хотите.
function start(){
setTimeout(() => ipcRenderer.send('startYellowApple', ["bob", "cat"]), 5000);
}