如何存储字符串以供以后通过POST方法api调用在Angular中使用?

编程入门 行业动态 更新时间:2024-10-23 10:24:15
本文介绍了如何存储字符串以供以后通过POST方法api调用在Angular中使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我被投入到一个对javascript/typescript/angular经验很少的项目中,所以请原谅我的无知.当用户登录时,我有一个post方法api调用,该调用添加了用户会话,并在成功发布后返回sessionId,它是一个字符串.我需要知道如何检索和存储该字符串以供以后在我的应用程序中使用,该字符串将用作几个不同的api调用的参数.这是我当前的服务设置:

I was put into a project where I have little experience with javascript/typescript/angular, so please excuse my ignorance. When a user logs in I have a post method api call that adds the user session and on a successful post it returns the sessionId which is a string. I need to know how to retrieve and store that string for later use in my application which will be used as a parameter for a couple different api calls. Here is my current service setup:

import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { catchError, retry } from 'rxjs/operators'; import { ConfigService } from './../config/config.service'; import { UserSession } from './user-session.interface'; import { ApiServiceBase } from '../shared/api-service-base' @Injectable({ providedIn: 'root' }) export class UserSessionService extends ApiServiceBase { public userSession: UserSession; private apiRoute: string = 'user-session'; constructor(http: HttpClient, configService: ConfigService) { super(http, configService); } public async AddUserSession(userName: string): Promise<string> { this.appSettings = (await this.configService.loadConfig().toPromise()); this.userSession = { userName: userName, application: this.application}; return this.http.post<string>(this.appSettings.apiSetting.apiAddress + this.apiRoute, this.userSession) .pipe( retry(1), catchError(this.handleError) ) .toPromise() } }

如何检索和存储返回的字符串?

How can I retrieve and store the returned string?

推荐答案

如果即使在重新加载浏览器时也需要保留sessionId,请尝试将ID存储在浏览器的localStorage中.

If the sessionId needs to be preserved even on browser reload, try storing the id in localStorage of the browser.

localStorage.setItem("sessionId", "123");

您只需使用

localStorage.getItem("sessionId");

但是,如果不是这样,您还可以提供一项服务,在该服务中,您可以使用您的getter和setter来设置和获取应用程序配置数据

However if thats not the case you can also have a service where u can have your getters and setters for setting and getting app config data

app-data.service.ts

app-data.service.ts

@Injectable({ providedIn: 'root' }) export class AppDataStore { private _sessionId: string; get sessionId() { return this._sessionId; } set sessionId(sId){ this._sessionId = sId } }

您可以将AppDataStore注入任何组件/服务中,并使用setter设置sessionId,也可以使用getter方法获取sessionId.

You can inject AppDataStore in any component/service and set the sessionId using the setter and also you will be able to get the sessionId using the getter method.

例如,

any-component.ts/any-services.ts

any-component.ts/any-services.ts

constructor(private userSessionService : UserSessionService, private appDataService: AppDataStore){} doSomething(){ const sessionId = await this.userSessionService.addUserSession(); this.appDataService.sessionId = sessionId }

Similary为了使sessionId返回任何其他文件,您只需将AppDataService注入类的构造函数中,然后使用

Similary in order to get the sessionId back in any other file , you can just inject AppDataService in the constructor of the class and read the sessionId back using

this.appDataStore.sessionId;

更多推荐

如何存储字符串以供以后通过POST方法api调用在Angular中使用?

本文发布于:2023-11-25 02:17:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1627917.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符串   以供   方法   POST   api

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!