保存对 "variable" angular 的回复

Save response to "variable" angular

如何将此响应保存到变量以便我可以从其他函数访问它?

代码:

        export interface launchResponse {
    
        status: number;
        url: string;
        token: string;
      }
    
        export interface launchResponseObject {
        response: launchResponse;
      }

然后在一个服务中:

          LAUNCHRESPONSE: launchResponseObject[] = [];
    
      async getData() {
    
        try {
          const LAUNCHRESPONSE = await this.http
            .get<launchResponseObject>(
              `${$apiUrl}`
            )
            .toPromise();
    
            console.log(LAUNCHRESPONSE.response.url)
            console.log(LAUNCHRESPONSE.response.token)

    
        } catch (error) {
          console.log(`Promise rejected with ${JSON.stringify(error)}`);
        }
      }

我知道我可以像这样保存它:this.url = LAUNCHRESPONSE.response.url 但我想保存整个东西然后像我在其他函数中的这个函数一样访问它。

我也尝试过使用 this.LAUNCHRESPONSE 而不是 const LAUNCHRESPONSE,但没有成功。我知道这确实很愚蠢,但我不知道是什么。

不确定保存整个内容并像您编写的函数一样访问是什么意思。如果您的要求是获取从 api 响应中获得的值而无需再次调用它,则可以在使用 [ 设置 api 响应后为其使用 getter 函数=21=] .

您的服务将如下所示:

  LAUNCHRESPONSE: launchResponseObject[] = [];

  async getData() {

    try {
      this.LAUNCHRESPONSE = await this.http
        .get<launchResponseObject>(
          `${$apiUrl}`
        )
        .toPromise();

        console.log(LAUNCHRESPONSE.response.url)
        console.log(LAUNCHRESPONSE.response.token)


    } catch (error) {
      console.log(`Promise rejected with ${JSON.stringify(error)}`);
    }
  }

getStoredResponseData(){
  return this.LAUNCHRESPONSE;
}

稍后您可以调用服务内部声明的getStoredResponseData()获取响应详情。