当前位置: 首页 > wzjs >正文

网站支付宝怎么做织梦只显示网站首页

网站支付宝怎么做,织梦只显示网站首页,云南省建设教育协会网站,网站网页设计专业公司含义 在 Flutter/Dart 中,Future 和 async/await 是处理异步操作的核心机制。以下是它们的极简说明: 1. Future 是什么:表示一个异步操作的 未来结果(可能未完成)典型场景:网络请求、文件读写、数据库操作…

含义

Flutter/Dart 中,Futureasync/await 是处理异步操作的核心机制。以下是它们的极简说明:


1. Future

  • 是什么:表示一个异步操作的 未来结果(可能未完成)
  • 典型场景:网络请求、文件读写、数据库操作等耗时任务
Future<String> fetchData() {return Future.delayed(Duration(seconds: 2), () => "数据加载完成");
}

2. async / await

  • 作用:以同步代码风格写异步逻辑,避免回调地狱
  • 规则
    • async 标记异步函数
    • await 等待 Future 完成并返回实际结果
void loadData() async {String data = await fetchData(); // 等待Future完成print(data); // 输出: "数据加载完成"
}

核心关系

关键词角色示例
Future异步任务的"欠条"Future<int> number
async标记函数内有异步操作func() async {...}
await暂停执行直到Future完成var x = await future

注意事项

  1. await 必须在 async 函数内使用
  2. await 修饰的代码会顺序执行
  3. 未处理的异常需要用 try/catch 捕获

比喻理解:
Future 像外卖订单,async/await 是你在家等着外卖送到再开门(而不是反复打电话问到哪了)。

好的!我将基于 async/awaitFuture 的特性,为你编写一个 明确展示异步执行顺序 的示例代码。这个示例会清晰体现:

  1. 遇到 await 时暂停等待(当前异步任务)
  2. 不相关的代码继续执行(不阻塞主线程)

🎯 示例代码

import 'dart:async';// 示例1: 模拟耗时2秒的网络请求
Future<String> fetchUserData() async {await Future.delayed(Duration(seconds: 2)); // 模拟延迟return "用户数据: 张三";
}// 示例2: 模拟耗时1秒的本地计算
Future<int> calculateScore() async {await Future.delayed(Duration(seconds: 5)); // 模拟延迟return 95;
}void main() async {print("程序开始执行");// 情景1: 需要等待的结果(用await)print("\n--- 开始请求用户数据(需等待结果)---");String userData = await fetchUserData(); // 会阻塞当前async函数内的后续代码print("收到结果: $userData"); // 2秒后执行// 情景2: 不等待的结果(直接执行后续代码)print("\n--- 启动分数计算(不等待)---");Future<int> futureScore = calculateScore(); // 不写await,直接返回Future对象print("此处立即执行,无需等待计算完成");// 打印其他无关操作print("\n--- 其他操作 ---");print("1. 播放背景音乐");print("2. 更新UI界面");// 事后获取分数结果(通过then回调)futureScore.then((score) => print("\n异步计算完成后输出分数: $score"));
}

📊 执行顺序解析

时间线输出内容说明
立即程序开始执行main() 同步代码第一步
立即--- 开始请求用户数据...---进入需要 await 的异步任务
2秒后收到结果: 用户数据: 张三fetchUserData() 完成,继续执行后续
立即--- 启动分数计算...---不写 await,直接返回 Future
立即此处立即执行...不阻塞,继续执行
立即--- 其他操作 --- + 两行输出主线程自由执行其他任务
1秒后异步计算完成后输出分数: 95calculateScore() 完成后通过 then 触发

🔑 关键结论

  1. 使用 await:会暂停当前 async 函数内的代码执行,直到 Future 完成。

    var result = await someFuture(); // 等待执行完毕
    
  2. 不用 await:立即返回 Future 对象,不阻塞后续代码,通过 .then() 或后续 await 获取结果。

    someFuture().then((result) { ... }); // 回调模式
    
  3. 主线程自由:与当前 async 函数无关的代码(如示例中的播放音乐)始终不受影响。


🌰 现实场景类比

  • 点外卖(用 await):你在家等外卖到了才吃饭(阻塞后续动作)。
  • 洗衣服(不用 await):启动洗衣机后直接去刷手机(不阻塞),洗完时手机提醒(.then)。

总结

如果一个函数返回 Future,你必须通过以下两种方式之一处理它

方式1:await 等待(同步风格)

Future<String> fetchData() async {await Future.delayed(Duration(seconds: 1));return "数据";
}void main() async {String data = await fetchData(); // 等待Future完成print(data); // 输出: "数据"
}

特点

  • 暂停当前 async 函数,直到 Future 完成
  • 代码按顺序执行,类似同步代码

方式2:.then() 回调(异步风格)

void main() {fetchData().then((data) { // 不阻塞,完成后触发回调print(data); // 输出: "数据"});print("这句会先执行"); // 立即执行,不等待Future
}

特点

  • 不阻塞后续代码Future 完成后自动触发回调
  • 适合不需要立刻结果的场景

必须二选一的原因

Dart/Flutter 中返回 Future 的函数 本质上是一个异步任务,如果你既不 await 也不 then

void main() {fetchData(); // ❌ 错误用法!结果会被丢弃(静默忽略)
}
  • 后果:程序不会报错,但你无法获取结果,且无法感知任务是否完成/失败
  • 解决方法:通过 awaitthen 明确处理

🏆 如何选择?

场景推荐方式例子
需要等待结果再继续await登录后跳转页面
结果可后续处理.then()上传文件后提示成功
并行多个任务Future.wait同时加载图片和用户数据

🔥 终极对比表

特性await.then()
代码风格同步顺序回调嵌套
是否会阻塞阻塞当前async函数不阻塞
异常处理try/catch.catchError()
适用场景强依赖结果的流程后台任务/通知

🌰 简单场景演示

// 组合使用:先await必要数据,再fire-and-forget其他任务
void loadPage() async {// 必须等待用户信息var user = await fetchUser(); print("用户: ${user.name}");// 不等待日志上报uploadLog(user.id).then((_) => print("日志上报成功"));// 继续其他操作print("页面加载完成"); 
}

总结
👉 await = “这个结果我现在就要!”
👉 .then() = “完成后告诉我,我先忙别的”
记得永远不要让 Future 变成"孤儿"(既不 await 也不 then)!


文章转载自:

http://wcBxf9Cn.rbbgh.cn
http://Ho6jPlRz.rbbgh.cn
http://HoD33O3z.rbbgh.cn
http://26tFYiRL.rbbgh.cn
http://i5cUk7D3.rbbgh.cn
http://0TfM3PXj.rbbgh.cn
http://uccq0cH5.rbbgh.cn
http://A1BpJR0S.rbbgh.cn
http://PcR6ygdX.rbbgh.cn
http://FxrLAMkc.rbbgh.cn
http://9lB380Ge.rbbgh.cn
http://p0ncoosD.rbbgh.cn
http://3vETDUIO.rbbgh.cn
http://xoRouN2U.rbbgh.cn
http://vppLsDaV.rbbgh.cn
http://Tg1uONDq.rbbgh.cn
http://H7kCUTGt.rbbgh.cn
http://nH19kVmh.rbbgh.cn
http://qhV3vSh9.rbbgh.cn
http://P3bMGtnv.rbbgh.cn
http://5Lo3FkvV.rbbgh.cn
http://uzst3yo6.rbbgh.cn
http://BmWFCVXp.rbbgh.cn
http://wfkMaW9G.rbbgh.cn
http://2SaN8K1Z.rbbgh.cn
http://oj6Wmw1p.rbbgh.cn
http://nPW1usBl.rbbgh.cn
http://5R0cGGuG.rbbgh.cn
http://YfJ7B586.rbbgh.cn
http://UZZDBL9g.rbbgh.cn
http://www.dtcms.com/wzjs/721389.html

相关文章:

  • 机关单位网站安全建设wordpress清理工具
  • 网站的定位与功能企业公司网页
  • wordpress展开收起全文seo发贴软件
  • 英文网站建设服务合同模板下载中国文明网联盟网站建设
  • 淘宝的网站建设情况企业网站的制作周期
  • 网站建设参考论文绍兴网站网站建设
  • 网站建设空间多大wordpress 菜单 字体加粗
  • 怎么注册网站卖东西项目推广平台有哪些
  • 中山网站制作设计网站开发方案及报价
  • 红河州住房和建设局网站机械加工订单
  • 贸易公司网站建设价格seo需要会什么
  • 网站设计网站机构WordPress飞不起来
  • 手机网站无响应柯桥做网站
  • 都江堰建设局网站高中学校网站模板
  • 福州市建设局网站 动态网站建站 外贸
  • 建设企业网站需要了解什么网站备案几年备案一次吗
  • 口腔医院网站优化服务商wordpress 账号 登陆不了
  • Ui互联网门户网站建设设置网站关键词怎么做
  • 电子商务网站规划从哪些方面入手上海建设局网站
  • 建设新北川网站wordpress sae
  • 广西网站建设开发团队开发网上商城多少钱
  • 全国做网站公司前十名如何交换友情链接
  • 邯郸网站建设 安联网络公司dw静态个人简历网站模板下载
  • 中文书店网站模板内网网站建设的步骤过程
  • wordpress双栏主题seo优化怎么做
  • 如何搭建 seo网站网站首页 psd
  • 网站改版建设方案建设网页的公司
  • 网站开发保存学习进度的方案wordpress添加产品
  • 做网站要买什么空间网站建设 招标公告
  • 正能量erp软件下载网站太原网站制作哪里便宜