V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wunonglin  ›  全部回复第 28 页 / 共 162 页
回复总数  3237
1 ... 24  25  26  27  28  29  30  31  32  33 ... 162  
更佳建议:当在一个流程里,如果其中一个出现错误,应该取消其他请求,然后弹出错误提示。
可以看我写的这个例子: https://stackblitz.com/edit/lvabgg?file=index.ts
消息提醒也是同样的逻辑。

写到拦截器的话,一个流程如果有多次请求,那么错误提示就会一连贯出现好几个。

错误的:
```
async function init(){
await getOrganization() // openErrorMessage('getOrganization XXX')
await getType() // openErrorMessage('getType XXX')
await getList() // openErrorMessage('getList XXX')
}
```

正确的
```
async function init(){
try{
await getOrganization()
await getType()
await getList()
}catch(e){
openErrorMessage('init error: XXXX')
}
}
```
把组件业务做到全局 http 拦截器里是普遍的错误用法,在拦截器里做消息提示也是。

正确的应该是在请求所处的组件内做。

以路由加载进度举例:假如你的进度条写在 app.vue ,那么你应该就在 app.vue 监听路由变化,从而调整进度。

换到你的案例:
首先放弃在全局拦截器里做这种事。
先设定一个概念:“流程”,一个流程里是要做一些事的,比如有 N 个请求或其他同 /异步的 function 。

假设打开一个用户列表页面为一个流程,流程里分别请求:用户列表、组织树、分类树,如果你在全局拦截器做进度条的话,那么你在打开页面的时候,每个请求都会设置不同的数值,因为每个请求的时间不一样,导致进度条抖动。

所以,你应该一个流程中,只设置一个线性的值,0-100 递增,不应该第一个到了 70 了,第二个请求又给你设置一个 40 。


在初始化流程里,正确的例子应该是这样
```
async function init(){
setProgress(0)
await getOrganization()
setProgress(30)
await getType()
setProgress(70)
await getList()
setProgress(100)
}
```

在刷新用户列表的流程里,应该是这样
```
async function refresh(){
setProgress(0)
await getList()
setProgress(100)
}
```
2022-09-08 01:45:19 +08:00
回复了 Features 创建的主题 macOS 前端仔深度使用 m1 mac mini 15 天进行开发有感
动不动就说狂热粉,麻烦看完这些评论再看看自己的提的问题,很难不吐槽
2022-09-08 01:44:16 +08:00
回复了 Features 创建的主题 macOS 前端仔深度使用 m1 mac mini 15 天进行开发有感
node 还停在 14 ?早就支持了。难不成你的项目还不支持 16+么?
新电脑新系统当然用新的软件才能做到最好的适配啊,你去用一个以前的版本,人家好心就提供 arm 版,不提供也能理解啊。

adobe 系列早就有 arm 版本了。

真的,下软件都不去官网看看,真的算个开发?
2022-09-07 17:06:17 +08:00
回复了 zhoudaiyu 创建的主题 问与答 想做一个关于 etcd 故障演练,大家能提供一波思路吗?
开 ssh ,大伙帮你测
2022-09-07 17:05:36 +08:00
回复了 MrCsharp 创建的主题 深圳 你们小孩在深圳读小学了吗?
最后一代
2022-09-07 16:30:04 +08:00
回复了 zk4v2 创建的主题 问与答 售楼处泄露个人信息应该怎么合理维权?
@zk4v2 #6 可以让 B 提供“推”这个行为的截图等证据,如果记录删掉了那么你需要向腾讯索要一下相关记录
2022-09-07 16:25:38 +08:00
回复了 zk4v2 创建的主题 问与答 售楼处泄露个人信息应该怎么合理维权?
"A 楼盘某销售把我的手机号推荐给了 B 楼盘"

这个有相关证据么,微信对话,录像 /音,书面协议等?
2022-09-07 09:48:16 +08:00
回复了 IBMall 创建的主题 Vue.js 微软为 Vue.js 推出 Power BI 组件,三大前端开发框架齐了
@edis0n0 #1 学习成本和招人成本高而已。我是一直在推 ng 的,ng 走的是一个赛道,vue 和 react 走的是另一个赛道,已经不能拿来比了
2022-09-06 13:44:44 +08:00
回复了 wloverine 创建的主题 macOS mac 有好用的终端管理工具吗
@wloverine #3 xshell 也不是免费的啊
2022-09-06 13:42:02 +08:00
回复了 wloverine 创建的主题 macOS mac 有好用的终端管理工具吗
termius
2022-09-05 09:32:56 +08:00
回复了 hhacker 创建的主题 宽带症候群 观测到 letsencrypt 服务器连接超时
正常啊
2022-09-03 02:58:10 +08:00
回复了 Cagliostro 创建的主题 问与答 要求下班关电脑的公司是不是很 low?
单从你的场景来说,关机 /休眠是应该的,如果公司有采集测试等设备的话,开着是没问题的,就场景而论。
2022-09-03 02:55:24 +08:00
回复了 Cagliostro 创建的主题 问与答 要求下班关电脑的公司是不是很 low?
?????,先不说公司的问题。在公共场所人走关电关水不是应该的么?又不是一定要开着的东西,你电脑有休眠那就直接休眠就好了,不好用那是微软的问题不是公司的问题。

在公司我只有笔记本,下班直接盒盖。在家我除了自己服务器不关,我笔记本不用的时候也都会盒盖的。

节约能源不是小时候家里人和老师经常说的么?
2022-09-02 11:52:42 +08:00
回复了 OnceWink 创建的主题 Vue.js vue 如何快速加载页面?
有一个是哪一个?问问题把代码、过程、日志等贴上来,不然虚空分析?
2022-08-30 17:32:17 +08:00
回复了 marcosteam 创建的主题 问与答 为什么 npm 更新比安装还要慢
用 pnpm ,可以节约生命
2022-08-30 16:24:42 +08:00
回复了 YGBlvcAK 创建的主题 分享发现 用“腾讯身份验证器”小程序替代“google 身份证验证器”
1Password 都能存啊,我信用卡,ssh 密钥,TOTP 等都存着。虽说要花钱,但好用是真好用
1 ... 24  25  26  27  28  29  30  31  32  33 ... 162  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5118 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 69ms · UTC 07:30 · PVG 15:30 · LAX 23:30 · JFK 02:30
Developed with CodeLauncher
♥ Do have faith in what you're doing.