推荐答案
在 Dart 中,async
和 await
关键字用于处理异步操作。async
用于标记一个函数为异步函数,而 await
用于等待一个异步操作完成。
示例代码
-- -------------------- ---- ------- ------------ ----------- ----- - --------------- ---------- ----- -------------------------------- ---- -- ------ ----------- ----------- - ---- ------ - ------------ ----------- -------- --------------- -
输出
Fetching data... Main function continues... Data fetched!
本题详细解读
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!'
。