Как мне сделать эквивалент 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();
}
Другие вопросы по тегам