请求重复,多次请求会广播err导致接收到null值
This commit is contained in:
@@ -14,6 +14,8 @@ export class UserService {
|
|||||||
private localStorageService: LocalStorageService) {
|
private localStorageService: LocalStorageService) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private lastRequestTime: number;
|
||||||
|
|
||||||
// 存储订阅者
|
// 存储订阅者
|
||||||
private userObserverArray: Observer<Response<User>>[] = [];
|
private userObserverArray: Observer<Response<User>>[] = [];
|
||||||
|
|
||||||
@@ -29,8 +31,16 @@ export class UserService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (this.lastRequestTime && Date.now() - this.lastRequestTime < 1000) {
|
||||||
|
return {
|
||||||
|
unsubscribe() {
|
||||||
|
observer.complete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// 不符合 请求网络数据并更新缓存
|
// 不符合 请求网络数据并更新缓存
|
||||||
// 向订阅者传数据
|
// 向订阅者传数据
|
||||||
|
this.lastRequestTime = Date.now();
|
||||||
const subscription = this.apiService.userInfo().subscribe({
|
const subscription = this.apiService.userInfo().subscribe({
|
||||||
next: o => {
|
next: o => {
|
||||||
this.localStorageService.setUser(o.result);
|
this.localStorageService.setUser(o.result);
|
||||||
@@ -38,6 +48,10 @@ export class UserService {
|
|||||||
},
|
},
|
||||||
error: err => {
|
error: err => {
|
||||||
// console.debug('登录过期 token错误 等等');
|
// console.debug('登录过期 token错误 等等');
|
||||||
|
if (err.code === -1) {
|
||||||
|
// 请求重复
|
||||||
|
return
|
||||||
|
}
|
||||||
this.localStorageService.removeToken();
|
this.localStorageService.removeToken();
|
||||||
observer.next(new Response<User>(null));
|
observer.next(new Response<User>(null));
|
||||||
observer.error(err);
|
observer.error(err);
|
||||||
|
|||||||
Reference in New Issue
Block a user