Я использую ioni c для разработки нового приложения.
У меня есть сервисный прием, подобный этому
import { Injectable } from "@angular/core";
import { HttpClient, HttpHeaders } from "@angular/common/http";
import { Observable, of } from "rxjs";
import { catchError, tap } from "rxjs/operators";
import { environment } from "src/environments/environment";
import { Storage } from "@ionic/storage";
//No problem on import
@Injectable({
providedIn: "root"
})
export class myservice {
serverUrl = environment.baseUrl;
httpHeader = {
headers: new HttpHeaders({ "Content-Type": "application/json" })
};
userid: number;
constructor(private http: HttpClient, private storage: Storage) {
}
async getFromStorageAsync(){
await this.storage.get('userid').then((val)=>{
this.userid = val;
console.log("UserId", this.userid); //Here it work fine
});
console.log("UserId", this.userid); // Here it work fine too
}
use_storage_data() {
this.getFromStorageAsync();
console.log("Userid",this.userid); // Here is undefined
let postData = {
userid: this.userid, // here is undefined
username: "samplename"
};
return this.http
.post<any>(this.serverUrl + "/appdata.php", postData)
.pipe(catchError(this.handleError));
}
}
Затем на странице я называю это вот так
getData(){
this.myservice.use_storage_data().subscribe(data => {
// console.log(data);
});
}
Пожалуйста, помогите мне сделать данные хранилища глобальными переменными. Или вы можете предложить новый подход для сохранения и использования таких данных, как идентификатор пользователя и имя пользователя в ioni c app
ПРИМЕЧАНИЕ У меня есть успешный набор ИД пользователя при входе пользователя
С уважением.