Http get 请求 URL 显示 [object promise]
Http get request URL shows [object promise]
我正在尝试使用网络 api 调用 get 方法来访问数据并显示在我的页面中。我的 url 会是这样的:https://localhost:44399/api/APIOrder/GetUserOrder?email=xxx@gmail.com
以便能够显示数据。
但是,当我将 url 与变量组合时,它不显示任何内容,控制台日志显示 url 在 https://localhost:44399/api/APIOrder/GetUserOrder?email=[object Promise]
中。有没有办法让 url 读取我的 this.User
变量?
请查看我的 getUserOrder()
User = this.storage.get('currentUser');
constructor(private http:Http,public storage: Storage){
}
public getUserOrder()
{
var url="https://localhost:44399/api/APIOrder/GetUserOrder?email=";
console.log(url+this.User);
return this.http.get(url+this.User).map(res=>res.json());
}
我真的很陌生。如果我不清楚,请告诉我。任何帮助将不胜感激..
更新
它显示未定义,因为它访问了顶部的变量值,而不是来自 ionViewWillEnter
User:string;
constructor(private http:Http,public storage: Storage){
}
async ionViewWillEnter()
{
this.User = await this.storage.get('currentUser');
}
public getUserOrder()
{
var url="https://localhost:44399/api/APIOrder/GetUserOrder?email=";
console.log(url+ this.User);
return this.http.get(url+this.User).map(res=>res.json());
}
您应该等待 Promise 的 return。您可以在构造函数内或在 ionViewWillEnter()
之类的生命周期内执行此操作
User: string;
async ionViewWillEnter() {
this.User = await this.storage.get('currentUser');
}
Answer here: "This is the expected result."
更新
这是一种不同的方法:如果您的函数以某种方式被直接调用,您可以创建一个函数,该函数 return 存储变量。如果找到数据,则继续http请求。
async getUserOrder() {
const user = await this.getUserFromStorage();
if (user) {
var url="https://localhost:44399/api/APIOrder/GetUserOrder?email=";
return this.http.get(url + user).map(res=>res.json());
}
}
async getUserFromStorage(): Promise<string> {
return await this.storage.get('currentUser');
}
我正在尝试使用网络 api 调用 get 方法来访问数据并显示在我的页面中。我的 url 会是这样的:https://localhost:44399/api/APIOrder/GetUserOrder?email=xxx@gmail.com
以便能够显示数据。
但是,当我将 url 与变量组合时,它不显示任何内容,控制台日志显示 url 在 https://localhost:44399/api/APIOrder/GetUserOrder?email=[object Promise]
中。有没有办法让 url 读取我的 this.User
变量?
请查看我的 getUserOrder()
User = this.storage.get('currentUser');
constructor(private http:Http,public storage: Storage){
}
public getUserOrder()
{
var url="https://localhost:44399/api/APIOrder/GetUserOrder?email=";
console.log(url+this.User);
return this.http.get(url+this.User).map(res=>res.json());
}
我真的很陌生。如果我不清楚,请告诉我。任何帮助将不胜感激..
更新
它显示未定义,因为它访问了顶部的变量值,而不是来自 ionViewWillEnter
User:string;
constructor(private http:Http,public storage: Storage){
}
async ionViewWillEnter()
{
this.User = await this.storage.get('currentUser');
}
public getUserOrder()
{
var url="https://localhost:44399/api/APIOrder/GetUserOrder?email=";
console.log(url+ this.User);
return this.http.get(url+this.User).map(res=>res.json());
}
您应该等待 Promise 的 return。您可以在构造函数内或在 ionViewWillEnter()
User: string;
async ionViewWillEnter() {
this.User = await this.storage.get('currentUser');
}
Answer here: "This is the expected result."
更新
这是一种不同的方法:如果您的函数以某种方式被直接调用,您可以创建一个函数,该函数 return 存储变量。如果找到数据,则继续http请求。
async getUserOrder() {
const user = await this.getUserFromStorage();
if (user) {
var url="https://localhost:44399/api/APIOrder/GetUserOrder?email=";
return this.http.get(url + user).map(res=>res.json());
}
}
async getUserFromStorage(): Promise<string> {
return await this.storage.get('currentUser');
}