Spec-Zone.ru › Dart 1

dart:async

Фабричный конструктор Timer.periodic

Timer.periodic(Duration duration, void callback(Timer timer))

Создаёт новый повторяющийся таймер.

Функция callback вызывается повторно с duration интервалами до отмены с помощью функции cancel.

Точное время зависит от реализации таймера. Не более n вызовов функции обратного вызова будут сделаны за duration * n времени, но время между двумя последовательными вызовами может быть короче и длиннее duration.

В частности, реализация может запланировать следующий вызов обратного вызова, например, duration после завершения предыдущего вызова, начала предыдущего вызова или планирования предыдущего вызова — даже если фактический вызов был отложен.

Исходный код

factory Timer.periodic(Duration duration, void callback(Timer timer)) {
  if (Zone.current == Zone.ROOT) {
    // No need to bind the callback. We know that the root's timer will
    // be invoked in the root zone.
    return Zone.current.createPeriodicTimer(duration, callback);
  }
  // TODO(floitsch): the return type should be 'void', and the type
  // should be inferred.
  var boundCallback = Zone.current
      .bindUnaryCallback<dynamic, Timer>(callback, runGuarded: true);
  return Zone.current.createPeriodicTimer(duration, boundCallback);
}

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-async/Timer/Timer.periodic.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API