函数取弹窗值同步执行处理方案

函数取弹窗值同步执行处理方案

在实际开发中有这样一种情况:

在页面中有一个按钮提交信息,点击提交时需要弹出一个弹窗,拿到弹窗信息值再向下执行,在掉弹窗点确定时我不想再掉一个接口去传值,我想在点击提交时连弹窗中的值一块传给后端。

下面是我的解决思路:

提交按钮需要拿到弹窗内填写的值,再向下执行调用接口

async testFun() {
	// 1.调用打开弹窗方法,并使用await使得代码同步执行
	// 2.await结合promise可以拿到promise返回值
	let needs = await this.open()
	
	 this.$http({
         url: Url,
         method: 'POST',
         data: needs,
         loading: true
     }).then(res => {
     	...
     })
}
  1. 打开弹窗return一个promise的回调函数
data() {
    return {
        visibleDialog: false,
        callBackInfo: null
    }
}
// 打开弹窗方法  ---- 就是变量打开的elementui弹窗
open() {
	return new Promise(cb => {
        this.callBackInfo = cb  // 变量接受promise的回调函数
        this.visibleDialog = true
    })
}
  1. 弹窗点确定按钮的时候传值
confirmDialog() {
	this.visibleDialog = false
	// needs为弹窗所拿到的值,通过callBackInfo回传最终函数内
	this.callBackInfo(this.needs)
}

这样就实现了同一个函数中,触发弹窗点击确定后,函数中代码同步执行。

  • 代码实现核心异步方案:await + promise
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值