Я хочу сохранить токен в локальном хранилище и, если он существует, немного изменить его, а затем использовать на странице.
С ionic 1 было легко создать сервис, который просто получал данные из локального хранилища, изменял их и возвращал, чтобы основной компонент мог делать с ними все, что захочет.
однако теперь, когда NativeStorage.getItem() возвращает обещание, как мне заставить службу полностью завершить получение элемента и завершить другие мои изменения, прежде чем возвращать измененный токен в качестве данных?
Я хочу иметь возможность:
export class Test{
let tok = "";
constructor(tokenService:TokenService){
this.tok = tokenService.getToken()
}
ngOnInit(){
alert(this.tok + " Is your token");
}
}
а в tokenService у провайдера есть:
getToken(){
// this doesn't work now because it will return undef for modified_token not waiting for the promise to finish
let modified_token:string;
NativeStorage.getItem('token').then(
data=>{
modified_token = data + 'modified';
}
);
return modified_token
}
Должен ли я просто иметь другую основную функцию, которая вызывается, когда обещание завершено?
как:
getToken(){
return NativeStorage.getItem('token')
}
а вместо конструктора в ngOnInit есть:
ngOnInit(){
tokenService.getToken().then(
data => {
let modified_token = data + "modified";
mainAction(modified_token);
})
}
и у mainAction() есть все остальное, что я хочу сделать?