Dart 中 Future.delayed() 的行为

Rah*_*ary 5 asynchronous dart flutter

我通常用 C++ 编程并知道 Sleep 函数是如何工作的,但是学习 dart (用于 flutter)现在我遇到了这个延迟函数

void countSeconds(s) {
  for( var i = 1 ; i <= s; i++ ) {
      Future.delayed(Duration(seconds: i), () => print(i));
   }
}
Run Code Online (Sandbox Code Playgroud)

它在第 i 秒后打印值i,但不应该在 1 秒后打印 1,再过 2 秒后打印 2 (即 3 ),再过 3 秒后打印 3 (即 6 秒)等。它是如何工作的?

Nut*_*uts 7

这将在 1 秒后打印 1,在 2 秒后打印 2,在 6 秒后打印 3。

 for( var i = 1 ; i <= 5; i++ ) {
      await Future.delayed(Duration(seconds: i), () => print(i));
   }
Run Code Online (Sandbox Code Playgroud)

在异步编程中,您需要等待 future 返回结果。否则它将立即返回所有内容