后端程序员写前端代码太难了

我是一名后端程序员,主要经验是WinForm和WebApi,最近开始在学.NET MAUI。由于项目上需要,再加上自己也想多掌握些技能,就把前后端的工作都一起揽了过来。

今天遇到了一个小问题,在WinForm中可以秒实现的功能,在Vue里搞了2小时(大佬们不要嘲笑我[流泪]),特此来记录一下。

先来上一段样例代码,如下:

取消功能的样例代码

这段样例代码的主要功能就是调用两个校验方法,校验通过后执行api与数据库交互。

在afterPrintCancelCheck这个方法中,根据条件(winthinHours<=0)判断可能会弹出一个询问对话框,由用户来决定是否继续往下执行,样例代码如下:

Modal.confirm()不会阻塞

问题就出在这个Modal.confirm()确认对话框上,这里它并不能阻塞代码,弹框之后还没有点击选择,后面的代码就已经正常执行完了[流泪]

后来经过调查,这里需要用到Promise来实现异步等待,才可以实现阻塞并正确获取到用户点击的结果值。改造的样例代码如下:

抽取useCancelConfirmAsync公共函数,用来弹框询问对话框

主要是将弹出询问对话框的代码抽取为一个共通async方法,然后在调用的时候用await等待,就可以正常阻塞并获取用户点击的结果了。

这样不仅可以解耦代码,提高代码的复用性,还使得代码看上去很优雅,方便日后维护[灵光一闪]

哎,太难了,如果是在WinForm里,那么就是下面一行代码就可以搞定了[大笑]

return MessageBox.Show("订单已打印,确认取消吗?", "取消", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes;

展开阅读全文

页面更新:2024-04-15

标签:程序员   代码   可能会   灵光   对话框   函数   日后   功能   方法   用户

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top