Как мне сделать эквивалент setTimeout + clearTimeout в дартс?
Я портирую немного JavaScript на Дарт. У меня есть код, который использует window.setTimeout
запустить обратный вызов через определенный промежуток времени. В некоторых ситуациях этот обратный вызов отменяется с помощью window.clearTimeout
,
Что является эквивалентом этого в дартс? я могу использовать new Future.delayed
заменить setTimeout
, но я не вижу способа отменить это. И я не могу найти, чтобы позвонить clearTimeout
из дартс.
1 ответ
Решение
Вы можете использовать класс Timer
var timer = new Timer(new Duration(seconds: 1), () => print('done'));
timer.cancel();
Если вы хотите имитировать JavaScript API:
import 'dart:async';
Timer setTimeout(callback, [int duration = 1000]) {
return Timer(Duration(milliseconds: duration), callback);
}
void clearTimeout(Timer t) {
t.cancel();
}