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

新乡河南网站建设edu网站开发

新乡河南网站建设,edu网站开发,建一个做笔记的网站,网站信息系统作为 Dart 开发人员&#xff0c;我们对异步编程和 Futures 的强大功能并不陌生。过去&#xff0c;当我们需要同时等待多个 future 时&#xff0c;我们依赖 Future.wait([]) 方法&#xff0c;该方法返回一个 List<T>。然而&#xff0c;这种方法有一个显着的缺点&#xff1…

作为 Dart 开发人员,我们对异步编程和 Futures 的强大功能并不陌生。过去,当我们需要同时等待多个 future 时,我们依赖 Future.wait([]) 方法,该方法返回一个 List<T>。然而,这种方法有一个显着的缺点:我们必须手动将结果转换为所需的类型,这可能会导致代码冗长且容易出错。

final results = await Future.wait([Future.value("andrew"),Future.value(1984),
]);
expect((results[0] as String).toUpperCase(), "ANDREW");
expect((results[1] as int).isNegative, false);

幸运的是,有一个更优雅的解决方案,它利用了扩展和 async/await 语法的强大功能: zipWith 扩展方法。

介绍 zipWith

zipWith 扩展方法允许您将两个 future 的结果组合成一个类型化元组,从而无需手动转换。它的工作原理如下:

final (name, year) = await Future.value("andrew").zipWith(Future.value(1984));
expect(name.toUpperCase(), "ANDREW");
expect(year.isNegative, false);

在此示例中,我们将合并两个 future 的结果:一个解析为字符串 “andrew”,另一个解析为整数 1984。该 zipWith 方法返回一个元组, (T, T2) 其中 T 是第一个未来的类型, T2 是第二个未来的类型。

但是等等,还有更多!您甚至可以链接多个 zipWith 调用来组合三个或更多 future 的结果:

final ((name, year), married) = await Future.value("andrew").zipWith(Future.value(1984)).zipWith(Future.value(false));
// ...
expect(married, false);

在此示例中,我们将三个 futures 组合在一起,从而生成一个嵌套元组 ((T, T2), T3)

引擎盖下

那么,zipWith 是如何施展魔法的呢?下面是实现方法:

extension FutureZipX<T> on Future<T> {Future<(T, T2)> zipWith<T2>(Future<T2> future2) async {late T result1;late T2 result2;await Future.wait([then((it) => result1 = it),future2.then((it) => result2 = it)]);return (result1, result2);}
}

结束语

通过利用 zipWith 的强大功能,您可以在处理多个异步操作时编写更简洁、更具表现力的代码。无需再手动转换或摆弄 List<dynamic> - 只需简洁、类型安全的元组,使您的代码更易于阅读和维护。

因此,下次当您发现自己要兼顾多个 future 时,请尝试一下 zipWith,体验 Dart 中简化异步编程的乐趣。

http://www.yayakq.cn/news/468718/

相关文章:

  • 织梦网站会员功能简易app软件
  • 网站 科技感mysql 存储wordpress
  • 济南市城市建设集团网站wordpress kswapd0
  • 制作网站首页的步骤wordpress 背景特效
  • 四川德立胜建设工程有限公司网站网站开发的阶段
  • 山西建站推广wordpress优质主题
  • 网站建设电商板块连云港市网站设计
  • 昌吉网站建设咨询电话公司建设网站请示
  • 北海 网站建设 公司海阳网网站
  • 本地做网站公司内部网站怎么建设
  • 视频网站如何优化商用营销型网站建设优化建站
  • 红酒公司网站建设湛江在线制作网站
  • cnzz 网站域名怎么填wordpress能做跨境电商
  • 陕西 建设工程有限公司网站app开发制作平台网站建设
  • iframe 网站前台模板提供专业网站建设平台
  • 别人做的网站怎么打开吗如何进行电子商务网站建设规划
  • 网站建设教程皆赞湖南岚鸿完成做一个公司网页要多少钱
  • 做拍福利爱福利视频网站免费网站开发合同范本
  • 衡阳企业网站dw自己做网站需要什么
  • 桌面网站怎么做seo页面代码优化
  • 好看的手机网站推荐建设网站外包
  • 网站建设情况调查表高端设计网站平台
  • 做招聘网站的要求百色市右江区了建设局网站
  • 移动网站建设推广做招聘的网站有哪些内容
  • 查看网站的注册时间做网站一般用什么框架
  • .net如何兼容手机网站企业局域网的规划与设计
  • 做网站运营是有提成的吗上海微网站建设
  • 南昌建设企业网站公司教做缝纫的网站
  • 品牌网站解决方案侧边导航条wordpress
  • 常州网站制作包括哪些wordpress视频播放器代码