setMainLoop method
Implementation
void setMainLoop(FutureOr<void> Function() loop) {
late final void Function(JSAny) tick;
void scheduleNext() => _requestAnimationFrame(tick.toJS);
tick = (JSAny _) {
if (_canceled) {
_canceled = false;
return;
}
final result = loop();
if (result is Future<void>) {
result.then((_) {
if (!_canceled) {
scheduleNext();
} else {
_canceled = false;
}
});
} else {
scheduleNext();
}
};
scheduleNext();
}