推荐答案
在 Dart 中,async 和 await 关键字用于处理异步操作。async 用于标记一个函数为异步函数,而 await 用于等待一个异步操作完成。
示例代码
// www.javascriptcn.com code example
Future<void> fetchData() async {
print('Fetching data...');
await Future.delayed(Duration(seconds: 2)); // 模拟异步操作
print('Data fetched!');
}
void main() {
fetchData();
print('Main function continues...');
}输出
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!'。