【问题标题】:Http get request URL shows [object promise]Http 获取请求 URL 显示 [object promise]
【发布时间】:2020-07-09 17:57:10
【问题描述】:

我正在尝试使用 web api 调用 get 方法来访问数据并显示在我的页面中。我的网址类似于:https://localhost:44399/api/APIOrder/GetUserOrder?email=xxx@gmail.com 以便能够显示数据。

但是,当我将我的 url 与变量组合时,它不会显示任何内容,并且控制台日志会在 https://localhost:44399/api/APIOrder/GetUserOrder?email=[object Promise] 中显示 url。有什么方法可以让 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());
  
}

【问题讨论】:

  • 请说明this.User是如何制作/初始化的
  • @TomasVancoillie 它保存在我的 ionic 本地存储中并分配给一个变量
  • 你应该等待promise的返回User = await this.storage.get('currentUser');
  • @TomasVancoillie 它显示“等待”表达式只允许在异步函数中和模块的顶层使用。

标签: ionic-framework get angular-promise


【解决方案1】:

您应该等待 Promise 的返回。您可以在构造函数中或在 ionViewWillEnter() 之类的生命周期中执行此操作

User: string;

async ionViewWillEnter() {
  this.User = await this.storage.get('currentUser');
}

Answer here: "This is the expected result."

更新

这是一种不同的方法:如果您的函数以某种方式被直接调用,您可以创建一个从存储中返回变量的函数。如果找到数据,则继续 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');
}

【讨论】:

  • 它显示了一个未定义的.. 你能查看我的更新吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多