我有一个使用Azure Directline 3.0的简单axios GET请求。 GET请求将回拉数据并将其显示在控制台中(如图所示)。
我要保存到变量中的数据是sessionId。然后我想将此变量与另一个JS文件中的Axios Post一起使用以作为链接的一部分进行发布,例如let URL = "https://directline.botframework.com/v3/directline/conversations/"+convID"/activities"
。使用convID
作为我希望创建的变量。现在,我正在用新的会话ID手动更改convID,但是我想创建一个变量,以便将其放置在javascript帖子中,这样它是自动的。enter image description here
答案 0 :(得分:0)
有多种方法可以解决此问题。最简单的方法是,将数据公开在共享对象window.convID = convID
上,然后在需要时访问它。
您还可以尝试制作singleton
对象,该对象只能实例化一次,因此将在应用程序的整个生命周期内共享其变量。
axios.get(/* URL */).then(res => {
window.convID = res.data.conversationId;
});
答案 1 :(得分:0)
您可以将该变量值保存在LocalStorage中。像这样:
let routeToYourApi = '/api/conversations'; // or something like this...
axios.get(routeToYourApi).then((response) => {
let conversationId = response.data.conversationId; // not sure if data object from your image is directly nested inside response that you get from server, but you get the idea...
window.localStorage.setItem("convId", conversationId);
}) // here you can fetch your conversation id
比您可以在应用程序中的任何位置访问它:
let conversationId = window.localStorage.getItem("convId");
...,最后将其从本地存储中删除:
window.localStorage.removeItem("convId")
希望这对您有帮助!