dart 学习之 异步操作

import 'package:dio/dio.dart';

// 定义一个异步函数,用于获取 URL 的内容
Future getUrl(String url) async {
  Dio dio = Dio();
  Response response = await dio.get(url);
  return response.data;
}

void main() async {
  // 在主函数中执行异步操作
  var content = await getUrl("https://baidu.com");
  print(content);
}

Future 和 异步函数:

在 Dart 中,使用 Future 类表示一个可能异步返回的值。它类似于 JavaScript 中的 Promise。
Future 表示一个将会异步返回一个字符串的 Future。
async 关键字用于将函数标记为异步函数,它允许在函数体内使用 await。
await 关键字:

await 关键字用于等待一个异步操作完成。当 await 后面的表达式返回一个 Future,当前函数的执行会被暂停,直到 Future 完成并返回结果。
在这个例子中,await dio.get(url) 表示等待 Dio 发起 GET 请求,并等待服务器响应返回。
main 函数中的异步调用:

在 Dart 的 main 函数中,使用 async 关键字将函数标记为异步函数,以便在函数内部使用 await。
在 main 函数中使用 await getUrl(“https://baidu.com”),意味着它会等待 URL 内容的获取完成,然后将结果赋值给变量 content。
print 异步结果:

一旦 getUrl 函数的异步操作完成,await 表达式将返回异步操作的结果,这里是响应的数据内容。
这个结果会赋值给变量 content,然后使用 print(content) 打印出来。
总之,Dart 使用 async 和 await 机制来处理异步操作,使得处理异步代码变得更加直观和可读,避免了回调地狱。在上面的例子中,异步操作是获取 URL 内容,但这个模式同样适用于其他异步任务,比如文件读写、网络请求、数据库操作等。

你可能感兴趣的:(dart,学习)