后端程序员写前端代码太难了怎么办_前端是程序员吗

前端 (65) 2023-03-24 17:13

大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。

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

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

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

后端程序员写前端代码太难了怎么办_前端是程序员吗_https://bianchenghao6.com/blog_前端_第1张

取消功能的样例代码

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

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

后端程序员写前端代码太难了怎么办_前端是程序员吗_https://bianchenghao6.com/blog_前端_第2张

Modal.confirm()不会阻塞

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

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

后端程序员写前端代码太难了怎么办_前端是程序员吗_https://bianchenghao6.com/blog_前端_第3张

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

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

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

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

后端程序员写前端代码太难了怎么办_前端是程序员吗_https://bianchenghao6.com/blog_前端_第4张

C#代码一行搞定

发表回复