V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  googleaccount  ›  全部回复第 11 页 / 共 27 页
回复总数  538
1 ... 7  8  9  10  11  12  13  14  15  16 ... 27  
@googleaccount 咋格式呢
```javascript
const subscriptionRef = useRef(null);

useEffeect(() => {
...
if (subscriptionRef.current) {
subscriptionRef.current.unsubscribe();
}
...
subscriptionRef.current = timer()
...
return () => {
subscriptionRef.current.unsubscribe();
};
}, [refresh_token]);
```
我没测试上面这些代码,还一个简单粗暴的办法就是把定时器存在 ref 上 就不会出现这些问题了。
```js
const subscriptionRef = useRef(null);

useEffeect(() => {
...
if (subscriptionRef.current) {
subscriptionRef.current.unsubscribe();
}
...
subscriptionRef.current = timer()
...
}, [refresh_token]);
return () => {
subscriptionRef.current.unsubscribe();
};
})
```
```js
export function RefreshTokenComp({
refreshTokenActor,
}: {
refreshTokenActor: RequestActor<{
refreshToken: string;
}>;
}) {
const [access$, updateAccess] = useAccessMgr();
const access = useObservable(access$) || {};
const { refresh_token, expireAt } = access;
let sub:Timer
const [refreshTokenRequest] = useRequest(refreshTokenActor, {
onSuccess({ arg }) {
updateAccess(fromOAuthToken(arg.data));
},
});

useEffect(() => {
if (!refresh_token) return;
if (sub) sub.unsubscribe();
const expiresIn = moment(expireAt).diff(moment(), "s") - 120; // token 过期前二分钟左右刷新
sub = timer(expiresIn * 1000).subscribe(() => {
refreshTokenRequest({ refreshToken: refresh_token });
});
return () => {
sub.unsubscribe();
};
}, [refresh_token]);

return null;
}
``` 试试这样
你这个 refresh_token 每隔两分钟就会变 说明 useEffect 里面的定时器每隔两分钟就会执行一次 执行多了不就爆了没,每次执行前清空一下就好了
追求数据实时性 考虑用 websocket ?
193 天前
回复了 liv22 创建的主题 长沙 120w 是买长沙还是广州?
120w 全款只能去三四线城市买吧
194 天前
回复了 buyerhou 创建的主题 生活 停车位买卖问题
现在是买方市场 就等租客走了再买 他爱卖不卖吧 车位亏多很正常 开发商卖几年没卖完没五折出售呢。
8 成是司机操作失误 踩错了油门之类 2 成可能是车内夫妻闹矛盾导致车辆失控。
很多人以几十年老司机为借口说啥不可能踩错,殊不知越这样说司机问题越大, 就前几天有个大妈开儿子的特斯拉操作失误在空中翻转几圈的 一开始他儿子群里说的就是刹车失灵 他妈几十年驾龄不会踩错。好在她妈没出事 调查结果出来就是操作失误了,想想如果真出事了 死无对证 家属又得赖特斯拉刹车失灵了。。。
207 天前
回复了 nelhu 创建的主题 生活 手头有 20w,先还房贷还是先还信用贷? [急]
20 万 其实对房贷没啥影响 月供少不了多少钱 不如先把信用贷早点还了 少一个还款日
211 天前
回复了 cslive 创建的主题 问与答 有没有试过穿五趾袜的
我感觉可以解决我经常左右两只穿错的问题
211 天前
回复了 awolfer 创建的主题 汽车 准备卖掉雅阁,换电车,有什么建议吗?
@SuperLino https://space.bilibili.com/24142770 应该说的是这位大佬吧 一辆 86 一辆 id3
211 天前
回复了 awolfer 创建的主题 汽车 准备卖掉雅阁,换电车,有什么建议吗?
油费肯定不是理由啊 你这一来一回可能还得多花钱 体验升级也并不大。我是阿特兹车主 现在每周加一次油 也很肉疼 前段时间订了 su7 max 打算后面看情况要不要把阿特兹卖了 纯粹是想趁 30 岁再激情驾驶一把 后面可能就不会再买运动轿车了。
所以我的建议就是要么就先别换,如果真想省钱 就直接换个更便宜的 798 啥的,要么就再加点钱换个体验更好的
213 天前
回复了 xiaocongcong1 创建的主题 淘宝 大家来吐槽下淘宝网页版
阿里现在要做的是怎么说服那些流失的用户用回淘宝。我已经很多年没用过淘宝了
明前龙井 安吉白茶 凤凰单枞 武夷山红茶。我的茶柜里有这几种茶叶 换着喝
214 天前
回复了 xiaopanglian 创建的主题 设计 一个好的简约博客大概是什么样的呢?
https://www.dyy.im/ 又开始了吗
215 天前
回复了 cat9life 创建的主题 生活 莫名其妙的网络热点,例如长城炮
一开始觉得是有点反差 很多民间的皮卡车主跟风发视频, 后面就是官方下场炒作了
1 ... 7  8  9  10  11  12  13  14  15  16 ... 27  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2389 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 40ms · UTC 16:05 · PVG 00:05 · LAX 08:05 · JFK 11:05
Developed with CodeLauncher
♥ Do have faith in what you're doing.