dart 学习之 异步操作

news/2024/7/24 4:32:52 标签: 学习
import 'package:dio/dio.dart';

// 定义一个异步函数,用于获取 URL 的内容
Future<String> 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 内容,但这个模式同样适用于其他异步任务,比如文件读写、网络请求、数据库操作等。


http://www.niftyadmin.cn/n/4977462.html

相关文章

【Java 中级】一文精通 Spring MVC - 数据格式化器(六)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

通过二分查找所处区间binary_find_index

def binary_find_index(biz_type_thresholds, prob, lo0, hiNone): """ 阈值降序排序,通过二分法查找prob所在的合适位置 :param biz_type_thresholds: 阈值降序排序 :param prob: :param lo: :param hi: :return: ""…

Nginx反向代理其他服务

Nginx反向代理 嘿&#xff0c;你的网络遇到了限制&#xff0c;不能直接通过服务的端口进行访问&#xff1f;别担心&#xff0c;我们可以借助Nginx这个超级英雄来解决这个问题&#xff01;让我给你讲讲关于Nginx反向代理的故事吧。 首先&#xff0c;让我们明确一下反向代理的概…

dart Offstag

作为子组件&#xff0c;不输出&#xff0c;不占空间&#xff0c;不参与点击测试 Offstage children are still active: they can receive focus and have keyboard input directed to them. bool offstage属性决定显示与否。 import package:flutter/material.dart;/// Flut…

基于内存池的 简单高效的数据库 SDK简介

基于内存池的 简单高效的数据库 SDK简介 下载地址&#xff1a; https://gitee.com/tankaishuai/powerful_sdks/tree/master/shm_alloc_db_heap shm_alloc_db_heap 是一个基于内存池实现的简单高效的文件型数据存储引擎&#xff0c;利用它可以轻松地像访问内存块一样读、写、增…

Linux没有ens33解决方案

目录 项目场景&#xff1a;问题描述原因分析&#xff1a;解决方案&#xff1a; 项目场景&#xff1a; 无 问题描述 在linux中使用ifconfig没有ens33相关信息&#xff0c;没有ip地址。 原因分析&#xff1a; 无 解决方案&#xff1a; 执行以下三行命令 systemctl stop N…

成都国际车展首个观众日,远航汽车带你体验速度与激情

近日&#xff0c;第二十六届成都国际汽车展览会&#xff08;以下简称&#xff1a;成都国际车展&#xff09;在中国西部国际博览城盛大开幕。作为全国汽车行业风向标之一的成都国际车展&#xff0c;多年来竭力打造多元、国际、专业的展销一体化平台&#xff0c;也成为各大汽车品…

【Go 基础篇】Go语言中的数组:初识与应用

Go语言以其简洁、高效和强大的特性在编程界广受欢迎。数组作为一种基本的数据结构&#xff0c;在各种应用场景中扮演着重要角色。本文将引入Go语言中的数组&#xff0c;介绍其特点、创建、初始化以及基本应用&#xff0c;为你打开数组的大门。 前言 数组是一种固定大小的数据…