Dart 中 async 和 await 关键字的用法?

推荐答案

在 Dart 中,asyncawait 关键字用于处理异步操作。async 用于标记一个函数为异步函数,而 await 用于等待一个异步操作完成。

示例代码

-- -------------------- ---- -------
------------ ----------- ----- -
  --------------- ----------
  ----- -------------------------------- ---- -- ------
  ----------- -----------
-

---- ------ -
  ------------
  ----------- -------- ---------------
-

输出

本题详细解读

async 关键字

  • async 关键字用于标记一个函数为异步函数。异步函数返回一个 Future 对象,表示该函数将在未来某个时间点完成。
  • 异步函数内部可以使用 await 关键字来等待其他异步操作完成。

await 关键字

  • await 关键字用于暂停当前异步函数的执行,直到等待的 Future 完成。
  • await 只能在 async 函数中使用。
  • 使用 await 可以使异步代码看起来像同步代码,提高代码的可读性。

注意事项

  • 使用 await 时,当前函数的执行会被暂停,但不会阻塞整个程序的执行。其他代码仍然可以继续运行。
  • 如果 await 等待的 Future 抛出异常,await 表达式会抛出该异常,可以使用 try-catch 来捕获异常。

示例代码解析

  • fetchData 函数被标记为 async,表示它是一个异步函数。
  • await Future.delayed(Duration(seconds: 2)); 暂停 fetchData 函数的执行,等待 2 秒钟。
  • 在等待期间,main 函数继续执行,打印 'Main function continues...'
  • 2 秒钟后,fetchData 函数继续执行,打印 'Data fetched!'
纠错
反馈