在离子防护中使用 ngrx
Using ngrx in ionic guard
在离子中我有守卫。在我的旧版本中它看起来像这样(我从服务器获取数据):
ionViewCanEnter(): Promise<any> {
return this.miejscaService.pobierzSzczegoly(this.navParams.data)
.do(resp => {
this.atrakcja = resp;
})
.toPromise();
}
它工作得很好,但我想缓存数据,所以我现在使用 ngrx
商店。
我得到数据但守卫不工作:/没有错误。不知道为什么...
ionViewCanEnter(): Promise<any> {
return this.store.select(getWybranaAtrakcja)
.do(resp => {
console.log('I\'m here');
console.log(resp);
this.atrakcja = resp;
})
.toPromise();
}
当我用谷歌搜索时,bug
很小(在我看来)。到达商店从未解决(就承诺而言)。
https://github.com/Reactive-Extensions/RxJS/issues/1088
ionViewCanEnter(): Promise<boolean> {
let resolver = (subsription: Subscription, resolve: Function, result: any) => {
resolve(result);
subsription.unsubscribe();
};
let rejecter = (subsription: Subscription, reject: Function, error: any) => {
reject(error);
subsription.unsubscribe();
};
return new Promise((resolve, reject) => {
let subscription = this.store.select(getWybranaAtrakcja)
.pipe(
filter(resp => !!(resp))
)
.subscribe(
result => {
this.atrakcja = result;
resolver(subscription, resolve, result);
},
error => {
rejecter(subscription, reject, error);
}
);
});
}
在离子中我有守卫。在我的旧版本中它看起来像这样(我从服务器获取数据):
ionViewCanEnter(): Promise<any> {
return this.miejscaService.pobierzSzczegoly(this.navParams.data)
.do(resp => {
this.atrakcja = resp;
})
.toPromise();
}
它工作得很好,但我想缓存数据,所以我现在使用 ngrx
商店。
我得到数据但守卫不工作:/没有错误。不知道为什么...
ionViewCanEnter(): Promise<any> {
return this.store.select(getWybranaAtrakcja)
.do(resp => {
console.log('I\'m here');
console.log(resp);
this.atrakcja = resp;
})
.toPromise();
}
当我用谷歌搜索时,bug
很小(在我看来)。到达商店从未解决(就承诺而言)。
https://github.com/Reactive-Extensions/RxJS/issues/1088
ionViewCanEnter(): Promise<boolean> {
let resolver = (subsription: Subscription, resolve: Function, result: any) => {
resolve(result);
subsription.unsubscribe();
};
let rejecter = (subsription: Subscription, reject: Function, error: any) => {
reject(error);
subsription.unsubscribe();
};
return new Promise((resolve, reject) => {
let subscription = this.store.select(getWybranaAtrakcja)
.pipe(
filter(resp => !!(resp))
)
.subscribe(
result => {
this.atrakcja = result;
resolver(subscription, resolve, result);
},
error => {
rejecter(subscription, reject, error);
}
);
});
}