typescript 如何让一个方法等待POST方法结束?

plupiseo  于 2023-02-13  发布在  TypeScript
关注(0)|答案(1)|浏览(126)

我有这个代码:

login() {
    const body = JSON.stringify({
      "usuario":"juanma",
      "password":"1234"});
    console.log(body);
    let tokencito:string = ''
    const params = new HttpParams();
    const headers = new HttpHeaders();
    this.http.post<AuthResponse>("http://localhost:8000/login", body, {'headers':headers,'params':params})
      .subscribe(data =>
        // @ts-ignore
     this.tokencito = data.token.token, localStorage.setItem('token', this.tokencito));
    console.log(localStorage.getItem('token'))
  }

我用这个函数从PHP的用户那里得到一个令牌。但是,它并不等待数据的到来。当我做一次的时候,它给我的数据是未定义的。但是当我做第二次的时候,它确实得到了正确的令牌。
我将添加一个图像来更好地解释它:

有人知道如何让它等待post方法结束吗?

2sbarzqh

2sbarzqh1#

您的语法错误,这是您想要的:

login() {
    const body = JSON.stringify({
      usuario: 'juanma',
      password: '1234',
    });
    console.log(body);
    const params = new HttpParams();
    const headers = new HttpHeaders();
    this.http.post<any>('http://localhost:8000/login', body, { headers: headers, params: params }).subscribe((data) => {
      this.tokencito = data.token.token;
      localStorage.setItem('token', this.tokencito);
    });
  }

尽量不要覆盖TypeScript。它试图告诉你一些事情。

相关问题