vue 关于两个if条件中的promise

devtools/2024/9/22 14:35:15/

一、案例效果

期望if判断条件里的两个promise 都同时执行完成

二、 初始代码案例

const formatDetail = async (fnArgsJsonParams: MapLogicType) => {if (fnArgsJsonParams?.targetFeatureName) {const resDetailData = await formatFeatureInfo(fnArgsJsonParams.targetFeatureName)targetParamsObj.value = { ...resDetailData }console.log('1111111111')$emit('targetFeatureCallback')}if (fnArgsJsonParams?.inputFeatureName) {inputResultObj.value = await formatFeatureInfo(fnArgsJsonParams.inputFeatureName)console.log('2222222222')}
}

可以使用Promise.all来确保两个if语句中的异步操作都执行完毕。以下是修改后的代码

const formatDetail = async (fnArgsJsonParams: MapLogicType) => {const promises = []if (fnArgsJsonParams?.targetFeatureName) {const targetFeaturePromise = formatFeatureInfo(fnArgsJsonParams.targetFeatureName).then(resDetailData => {targetParamsObj.value = { ...resDetailData }console.log('1111111111')$emit('targetFeatureCallback')})promises.push(targetFeaturePromise)}if (fnArgsJsonParams?.inputFeatureName) {const inputFeaturePromise = formatFeatureInfo(fnArgsJsonParams.inputFeatureName).then(resDetailData => {inputResultObj.value = resDetailDataconsole.log('2222222222')})promises.push(inputFeaturePromise)}await Promise.all(promises)
}

这样,Promise.all会等待所有的Promise都完成后再继续执行。


http://www.ppmy.cn/devtools/95320.html

相关文章

QT:QTableWidget 设置单元格边距

在 Qt 的 QTableWidget 中,直接设置单元格(QTableWidgetItem)内容的边距(padding)并不是直接支持的。QTableWidgetItem 主要是用来存储和显示文本、图标等内容的,但它不提供直接设置内容边距的API。 不过&…

Java基础 文字小游戏

souf System.out.printf("你好啊%s","张三") 输出你好啊张三 System.out.printn()放在中间可以换行 System.out.printf("%s你好啊%s","张三","李四") 输出 张三你好啊李四 只有输出没有换行效果。 制作一个文字小游戏…

精度±0.1g火试金自动化系统中的失重秤如何为冶金行业带来革命性提升

火试金自动化系统中的失重秤计量配料(高精度误差0.1g)如何为冶金行业带来革命性提升! 在现代冶金和矿物处理领域,精确度是确保最终产品质量和一致性的关键因素。为了满足这一需求,火试金自动化系统中的失重秤技术脱颖而…

Unity教程(十)Tile Palette搭建平台关卡

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…

Spring Boot整合Drools入门:实现订单积分规则

文章目录 项目结构Maven配置配置Drools订单实体类订单积分规则测试规则总结 在开发过程中,我们经常遇到需要根据业务规则来进行决策的场景。比如,电商平台可能需要根据订单金额为用户添加相应的积分。为了灵活地处理这些业务规则,我们可以借助…

开源异构数据库同步工具DBSyncer

DBSyncer是一款开源的数据同步中间件,它提供了多种数据库和数据源之间的同步解决方案,包括MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。 以下是对DBSyncer的详细介绍: 一、主要功能与特点 多种…

提升前端性能的 JavaScript 技巧

提升前端性能的 JavaScript 技巧 在现代前端开发中,性能优化是一个至关重要的主题。随着网页应用的复杂度增加,用户对加载速度和响应时间的要求也越来越高。为了提升前端性能,我们可以使用一些有效的 JavaScript 技巧。本文将介绍几个关键的…

Vue3 v-bind 指令用法

在 Vue 3 中&#xff0c;v-bind 指令用于将表达式的值绑定到 DOM 元素的属性上。这个指令的语法与 Vue 2 相同&#xff0c;但有一些细微的变化和改进。 以下是 Vue 3 中 v-bind 指令的基本用法&#xff1a; 基本用法: <button v-bind:class"{ active: isActive }"…