У меня есть наблюдатель событий web3, настроенный в файле Javascript как таковой:
var a;
contract.events.allEvents(function(error, event){
if (event.event == "Set") {
a = event.returnValues['val'];
}
});
Когда я запускаю этот файл, node eventWatcher.js
он будет бесконечно зацикливаться и запускать код в моих условиях каждый раз, когда происходит событие.
Однако я хочу одновременно поддерживать таймер, чтобы по прошествии определенного времени я мог сбросить значение a
. Это возможно?
Спасибо!
Чтобы установить событие времени, вы можете просто использовать обычный таймер JavaScript.
var a;
contract.events.allEvents(function(error, event){
if (event.event == "Set") {
a = event.returnValues['val'];
window.setTimeout(function() {
a = '';
}, (60 * 1000)); // clear a in 60 seconds
}
});
Если вы хотите сделать это только один раз на таймере, а не один раз, когда происходит событие, вы можете предпочесть поместить таймер в цикл setInterval
и использовать get
внутреннюю функцию таймера для захвата событий и отображения самых последних.
Нулик
setTimer()
используется функция. Эта функция у вас не работает? Поправьте меня, если я ошибаюсь, но этот вопрос больше касается Javascript, а не самого Ethereum.