如何在 Dart 中模拟长时间进程(睡眠)?

How to simulate long time process (sleep) in Dart?

我想stop/sleep执行以模拟长时间的过程,不幸的是我找不到相关信息。我已阅读以下主题 (How can I "sleep" a Dart program),但这不是我要找的内容。

例如 dart:io 包中的 sleep() 函数不适用,因为该包在浏览器中不可用。

例如:

import 'dart:html';
main() {
  // I want to "sleep"/hang executing during several seconds
  // and only then run the rest of function's body
  querySelect('#loading').remove();
  ...other functions and actions...
}

我知道有Timer class 会在一段时间后进行回调,但它仍然不会阻止整个程序的执行。

无法停止执行。您可以使用计时器或 Future.delayed,也可以只使用仅在经过一定时间后才结束的无限循环。

如果你想要停止世界休眠功能,你完全可以自己做。我会提到我不建议你这样做,停止世界是一个非常糟糕的主意,但如果你真的想要它:

void sleep(Duration duration) {
  var ms = duration.inMilliseconds;
  var start = new DateTime.now().millisecondsSinceEpoch;
  while (true) {
    var current = new DateTime.now().millisecondsSinceEpoch;
    if (current - start >= ms) {
      break;
    }
  }
}

void main() {
  print("Begin.");
  sleep(new Duration(seconds: 2));
  print("End.");
}