googleaccount 最近的时间轴更新
googleaccount

googleaccount

V2EX 第 234638 号会员,加入于 2017-06-08 18:40:54 +08:00
今日活跃度排名 4214
根据 googleaccount 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
googleaccount 最近回复了
听到有人在召唤我
4 小时 31 分钟前
回复了 Div1ne 创建的主题 职场话题 你们现在的工资,跟刚入行时候的工资差了多少倍?
10 年 10 倍多一点
20 小时 44 分钟前
回复了 ChrisFreeMan 创建的主题 生活 烟和酒都戒了,请问一天后要怎么放松自己。
泡茶
游戏
23 小时 58 分钟前
回复了 glacer 创建的主题 职场话题 广州本科 9 年,拿 30k 真的很弱吗
弱不弱不知道 反正肯定不高不强
其实也还好 如果没有报一些乱七八糟的兴趣班 这点花费不算啥呢。报班才是最贵的
@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 ?
2 天前
回复了 liv22 创建的主题 长沙 120w 是买长沙还是广州?
120w 全款只能去三四线城市买吧
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5665 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 07:07 · PVG 15:07 · LAX 00:07 · JFK 03:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.