第三百九十回

文章目录

  • 1. 概念介绍
  • 2. 思路与方法
    • 2.1 实现思路
    • 2.2 实现方法
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"如何把异步的CallBack转换成事件流"相关的内容,本章回中将介绍如何延时处理数据.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在上一章回中介绍了回调函数相关的内容,主要是把回调函数转换成了Stream.不过有时候回调函数响应速度太快,页面还没有准备好。因此需要让回调函数响应慢
一些。如何让它变慢呢?这便是本章回的内容:延时处理数据。

2. 思路与方法

2.1 实现思路

我们的实现思路使用Future来实现延时任务,然后在页面中使用FutureBuilder来监听任务的完成状态。我们在前面章回中介绍缓冲组件时也介绍过这个思路,如果大
家忘记的话可以点击这里查看以前的博客。

2.2 实现方法

介绍完实现思路后,我们来介绍实现方法,详细的实现步骤如下:

  • 创建一个Future对象,并且通过delay()方法启动延时功能;
  • 到达指定的时间后开始处理数据,这里相当于延长了回调函数处理数据的时间;
  • 在页面中使用FutureBuilder监听数据的处理过程;
  • 在页面中依据不同的数据处理过程显示不同的数据;

3. 示例代码

///在future中加入延时,以延长事件处理过程
Future<String> delayFunc(int delayTime) {String result = "default";return Future.delayed(Duration(seconds: delayTime,), () {result = "time delay $delayTime s";return Future.value(result);},);
}///在页面中监听数据的处理状态
FutureBuilder(future: delayFunc(3),builder:(context,shotData) {String strState = "init Data";if(shotData.connectionState == ConnectionState.waiting) {strState = " data is waiting";}else if(shotData.connectionState == ConnectionState.none) {strState = " none data";}else if(shotData.connectionState == ConnectionState.done) {strState = "data is: ${shotData.data.toString()}";}else {strState = " unKnown data";}return Text(strState,style: const TextStyle(color: Colors.purpleAccent),);}),

上面的示例代码中把Future封装成了一个独立的方法,在该方法中通过延时操作来实现延时处理数据的功能。运行上面的程序时页面中显示" data is waiting",等
待3秒后就会显示:“data is:time delay 3 s”,当然了,这里的3秒是一个可以自定义的时间,大家可以依据项目需求来确定它的值,我们也考虑到了它的灵活性,
因此把它封装成了函数的参数,这样在调用函数时灵活传入自定义的时间值就可以。

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • 在处理延时数据时可以通过Future来实现;
  • 在页面中可以通过FutureBuilder来监听数据处理的进度;
  • 在页面中可以依据不同的数据处理进度显示不同的内容;
    看官们,与"如何延时处理数据"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/731238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

new;getline();重载<<和>>

面向对象程序设计的优点&#xff1a; 易维护易扩展模块化&#xff1a;通过设置访问级别&#xff0c;限制别人对自己的访问&#xff0c;保护了数据安全 int main(){ return 0;} 返回值0在windows下编程一般没用&#xff0c;但是在linux中编程&#xff0c;返回值有时有用 汇编与…

在Leaflet中使用Turf.js生成范围多边形的两种实现方式

目录 前言 一、场景需求 1、Leaflet.js的不足 2、Turf.js 二、原始数据展示 1、点位数据展示 2、定义样式 3、定位数据初始化 三、Turfjs中bbox生成 1、官网讲解 2、轨迹bbox生成 四、Turfjs生成外包多边形 1、官网例子 2、凸多边形生成 总结 前言 在一些共享出…

HTML二识

图片&#xff0c;音频&#xff0c;视频标签 标签描述<img>定义图片<audio>定义音频<video>定义视频 定义图片&#xff1a; src&#xff1a;规定显示图片的URL&#xff08;统一资源定位符&#xff09;height&#xff1a;定义图像的高度 单位&#xff1a;px…

Django cookie 与 session

Cookie 的语法 设置 cookie: rep.set_cookie(key,value,...) rep.set_signed_cookie(key,value,salt123,...) 获取 cookie: request.COOKIES.get(key) 删除 cookie: rep HttpResponse || render || redirect rep.delete_cookie(key) 工作原理 a. 浏览器第一次请求获取…

德人合科技|天锐绿盾加密软件——数据防泄漏系统

德人合科技是一家专注于提供企业级信息安全解决方案的服务商&#xff0c;提供的天锐绿盾加密软件是一款专为企业设计的数据安全防护产品&#xff0c;主要用于解决企事业单位内部敏感数据的防泄密问题。 www.drhchina.com PC端&#xff1a; https://isite.baidu.com/site/wjz012…

spring-cloud-openfeign 3.0.0之前版本(对应spring boot 2.4.x之前版本)feign配置加载顺序

在之前写的文章配置基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 下图为自己整理的

正则表达式 || 遇到字符串里面有() 就在括号后面换行

<template><div class"vertical-layout"><header><h1>testPage</h1><p>(1)第一行内容xxxxxxxxx&#xff08;2&#xff09;第二行内容xxxxxxx(3)第三行内容</p></header><main><el-button click"goToO…

Matlab|2机5节点牛拉法(含报告)

目录 主要内容 下载链接 主要内容 采用牛拉法计算2机5节点的潮流计算程序&#xff0c;程序迭代稳定&#xff0c;运行可靠&#xff0c;含报告资料。 下载链接

动态规划 Leetcode 509 斐波那契数

斐波那契数 Leetcode 509 学习记录自代码随想录 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n …

【SQL - 软件 - MySQL】随笔 - 查看已有数据库

查看已有数据库 语法 语法格式 SHOW DATABASES [LIKE 数据库名]&#xff1b;语法说明 "[ ]"中的内容是可选项&#xff0c;用于匹配特定的数据库名称。可以部分匹配&#xff0c;也可以完全匹配&#xff1b; 使用示例 01 代码 SHOW DATABASES LIKE test;描述 查看…

华为北向网管NCE开发教程(3)CORBA协议开发

华为北向网管NCE开发教程&#xff08;1&#xff09;闭坑选接口协议 华为北向网管NCE开发教程&#xff08;2&#xff09;REST接口开发 华为北向网管NCE开发教程&#xff08;3&#xff09;CORBA协议开发 如果你真的还有选择的余地&#xff0c;能用REST&#xff0c;尽量用REST&…

错误和异常之标准异常创建异常

标准异常 表 10.2 列出了所有的 Python 当前的标准异常集,所有的异常都是内建的. 所以它们在脚本启动 前或在互交命令行提示符出现时已经是可用的了. 表10.2 Python内建异常 异常名称描述所有异常的基类 python 解释器请求退出 用户中断执行(通常是输入^C) 常规错误的基类

Flutter使用auto_updater实现windows/mac桌面应用版本升级功能

因为windows应用一般大家都是从网上下载的&#xff0c;后期版本肯定会更新&#xff0c;那用flutter开发windows应用&#xff0c;怎么实现应用内版本更新功能了&#xff1f;可以使用auto_updater库&#xff0c; 这个插件允许 Flutter 桌面 应用自动更新自己 (基于 sparkle 和 wi…

Linux rmmod命令教程:如何卸载内核模块(附实例详解和注意事项)

Linux rmmod命令介绍 rmmod&#xff08;全称&#xff1a;remove module&#xff09;用于从Linux内核中卸载已加载的内核模块。它允许您在运行时移除不再需要的模块&#xff0c;以释放系统资源或更改内核配置。 Linux rmmod命令适用的Linux版本 rmmod在大多数Linux发行版中通…

#onenet网络请求http(GET,POST)

参考博文&#xff1a; POST: https://blog.csdn.net/qq_43350239/article/details/104361153 POST请求&#xff08;用串口助手测试&#xff09;&#xff1a; POST /devices/1105985351/datapoints HTTP/1.1 api-key:AdbrV5kCRsKsRCfjboYOCVcF9FY Host:api.heclouds.com Con…

java各种集合...习题

1 题目&#xff1a;给定一个长度为N的数组A&#xff0c;请你先从小到大输出它的每个元素&#xff0c;在从大到小输出它的每个元素。 示例输入 5 1 3 2 6 5 输出 1 2 3 5 6 6 5 3 2 1 package AAA;import java.util.*;public class Main5 {public static void main(Strin…

Linux内核中轮询对应于应用层的函数之一:epoll函数

一. 简介 应用层中提供的 select函数、poll函数 和 epoll函数可以用于处理轮询,应用程序通过 select、 epoll 或 poll 函数来查询设备是否可以操作。 应用层提供的 select()、poll() 或 epoll() 这三个函数,对应于对应了Linux驱动 file_operations 结构体中的成员函数 .pol…

Util工具类功能设计与类设计(http模块一)

目录 类功能 类定义 类实现 编译测试 Split分割字符串测试 ReadFile读取测试 WriteFile写入测试 UrlEncode编码测试 UrlDecode编码测试 StatuDesc状态码信息获取测试 ExtMime后缀名获取文件mime测试 IsDirectory&IsRegular测试 VaildPath请求路径有效性判断测…

图像处理与视觉感知---期末复习重点(2)

文章目录 一、空间域图像增强1.1 图像增强1.2 几种变换 二、直方图2.1 直方图定义2.2 直方图均衡化2.3 离散情况2.4 例子2.5 直方图匹配2.6 例子2.7 一道例题 三、空间滤波器3.1 定义3.2 例子 四、平滑空间滤波器4.1 作用与分类4.2 线性滤波器 五、统计排序滤波器5.1 定义与分类…

RNN(Recurrent Neural Networks)循环神经网络

循环神经网络&#xff08;Recurrent Neural Network&#xff0c;简称RNN&#xff09;是一种处理序列数据的神经网络结构&#xff0c;它具有记忆能力&#xff0c;能够捕捉序列中的时序信息。RNN在自然语言处理、时间序列预测等方面有着很多的应用。 一、RNN 的基本结构 RNN的包…