第三百九十回

2024-03-09 00:36
文章标签 第三 九十

本文主要是介绍第三百九十回,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 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.chinasem.cn/article/788954

相关文章

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

仿论坛项目--第三部分习题

1.关于前缀树的特征描述不正确的是: 根节点不包含字符,除根节点以外的每个节点,只包含一个字符。 从根节点到某一个节点,路径经过的字符连接起来,为该节点对应的字符串。 每个节点的所有子节点,包含的字符串不相同。 每个节点,最多只能包含2个节点。 解析: 这些描述都是关于前缀树(Trie)的一些基本特点。前缀树是一种树形结构,用于高效地存储字符串数据,常用于自动补全或拼写检查等应用。在前缀树中:

手搓智能体第三弹之复刻 ⌈ AI智能搜索 ⌋

大家好,我是凡人。 老弟最近又烦我了,这回直接在我家楼下堵我了。 原因是他前段时间实在受不了老板折磨离职了,现在找工作的时候就把AI方面的应用经历加入了简历,没想到收到了好几个面试邀约,但他自己真实水平又不怎么样,看我能不能给他点能惊艳面试官的大招, 这家伙平时就是好吃懒做,到关键时候害怕了,没办法我只能把最近捣鼓了很久的用Coze复刻秘塔工作流的技术奉献给他了,下面我们来一起看看。 在做

地震模板代码 - 第三部分

Seismic stencil codes - part 3 — ROCm Blogs (amd.com) 2024年8月12日,作者:Justin Chang 和 Ossian O’Reilly。  在前两篇博客文章中,我们开发了一个 HIP 内核,能够计算地震波传播中常用的高阶有限差分。经过优化后,z 方向的内核(在初始实现中表现最差的内核)在单个 MI250X GCD 上实现了近

CSP 2023 提高级第一轮 CSP-S 2023初试题 程序阅读第三题解析

三、完善程序(单选题,每小题 3 分,共计 30 分) 一、题目阅读 (第 k 小路径)给定一张 n 个点 m 条边的有向无环图,定点编号从 0 到 n−1,对于一条路径,我们定义“路径序列”为该路径从起点出发依次经过的顶点编号构成的序列。求所有至少包含一个点的简单路径中,“路径序列”字典序第 k 小的路径。保证存在至少 k 条路径。上述参数满足 1≤n,m≤105,1≤k≤1018。 在程序

数据库设计 第一范式、第二范式、第三范式 三大范式介绍

数据库设计三大范式 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为常见的设计范式有三个: 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式

《设计模式》第三部分 结构型设计模式 第10章 桥接模式(B:Java实现)

关于“桥接模式”的具体讲解请看笔者博客 《设计模式》第三部分 结构型设计模式 第10章 桥接模式(A:C++实现) 此文是“桥接模式”的Java实现。 第一步:实现化(Implementor)角色:定义实现化角色的接口,供扩展抽象化角色调用。 package com;public interface Implementor {public void OperationIm();} 第

《设计模式》第三部分 结构型设计模式 第8章 结构型设计模式简介

结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。 结构型模式可以分为类结构型模式和对象结构型模式: 类结构型模式关心类的组合,采用继承机制来组织接口和类,即由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系。 对象结构型模式关心类与对象的组合,采用组

Go反射四讲---第三讲:如何使用反射操作函数,获取函数的相关信息?

反射-函数 这是我们反射四讲的第三讲,本次给大家讲解如何使用反射处理函数相关的操作。 在这一部分,向大家展示如何输出方法的信息并执行调用。 输出信息,包含方法名,方法参数,返回值。 最后,如何使用反射调用函数。 提醒:在实现时候,我们要非常注意指针的使用,不然会出现 Bug。 测试函数 type User struct {Name stringAge int}func NewUs

第三節

 第三節   克成을 말함이니 陰成陰 陽成陽이다