#javascript #angular #class #subscribe
Вопрос:
Этот код работает как есть, за исключением краткого мигания неправильных данных из-за того, что я создаю пустой токен, прежде чем сразу же заполнять его в функции подписки. Есть ли способ переместить мой экземпляр в функцию подписки или передать классу все необходимые параметры для его создания вместо этого?
{
this.tokens.push(new Token(this.i));
this.tokenService.generate().subscribe((data: Token) => this.tokens[this.i] = {
// user_id: this.tokens[this.i].user_id,
copied: false, id: this.i ,
access_token: data.access_token,
expiration: data.expiration
});
}
Комментарии:
1. Может быть, я не понимаю вашего вопроса, но не могли бы вы просто «не делать этого»? Просто удалите свою первую строку кода: this.tokens.push(новый токен(this.i));
Ответ №1:
this.tokenService.generate(this.i).subscribe((data: Token) => {
this.tokens.push(data);
});
// tokenService
public generate(i: number): Observable <Token> {
const token = new Token(i);
return this.httpClient.post<Token>().pipe(map(res => {
token.access_token = res.access_token
...
return token;
})
// look at constructor of Token, it's better to put some logic there
// the code is not working, just an example