Dart 编程的未来课程

Dart 中有不同的类和关键字,当我们想要运行异步代码时可以使用它们。在未来的 类允许我们运行异步代码,我们也能避免与它的帮助下回调地狱。甲将来 主要表示异步操作的结果。

在 Dart 中,有许多返回未来的标准库调用,其中一些是 -

  • 获取

  • SharedPreference.getInstance()

Dart 的未来可以有两种状态,它们是 -

  • Completed  - 当 future 的操作完成并且 future 以值或错误完成时。

  • 未完成 - 当一个函数被调用并返回一个未来时,该函数排队并返回一个未完成的未来。

语法

Future<T>

在 Dart 中,如果 Future 不产生任何可用的值,则 Future 的类型是 Future<void>。此外,如果函数没有明确返回任何值,则返回类型也是 Future<void>。

示例

让我们考虑一个小例子,我们声明了一个以延迟方式显示消息的未来。

Consider the example shown below:
   Future<void> printDelayedMessage() {
      return Future.delayed(Duration(seconds: 4), () => print('Delayed Output.'));
}

void main() {
   printDelayedMessage();
   print('First output ...');
}

在上面的例子中,我们有一个名为的函数printDelayedMessage(),它返回一个 void 类型的未来,我们有一个使用名为延迟的方法的未来,通过它我们能够将延迟输出打印到终端。

输出结果

First output ...
Delayed Output.

应该注意的是,输出的第二行将在 4 秒后打印出来。

Dart 中的 Futures 还允许我们在 then 方法的帮助下注册回调。

示例

考虑下面显示的示例 -

void main() {
   var userEmailFuture = getUserEmail();
   // 注册回调
   userEmailFuture.then((userId) => print(userId));
   print('Hello');
}

// 计算未来的方法
Future<String> getUserEmail() {
   // 模拟长时间的网络通话
   return Future.delayed(Duration(seconds: 4), () => "mukul@nhooo.com");
}
输出结果
Hello
mukul@nhooo.com