我刚开始学习 NodeJS ,我有一个疑问,要把返回的token保存在变量中,在另一个函数中使用它,比如做GET。
我习惯了Python,在Python中我可以返回一个值,然后用函数声明一个新变量,它会将返回值保存在该变量中,但我发现在NODE JS中它不是这样工作的。
它应该是简单的,但我正在学习它仍然有点混乱,我看到它有一些有关的“等待”计划。
我甚至做了一个简单的测试,比如用“Await”创建另一个函数,然后运行该函数,它正确地显示了该标记,但我希望该标记在一个变量中,正如我前面所说的,以便在未来的GET中使用该标记。
var axios = require("axios")
async function getToken(){
var response = await axios.post('https://url',{
'grant_type':'client_credentials',
'client_secret': 'client secret',
'client_id': 'client id'},{
headers:
{
'Content-Type': 'application/x-www-form-urlencoded',
'Accept-Charset': 'UTF-8'
}
})
return response.data.access_token;
}
async function test(){
var token = await getToken();
}
test();
1条答案
按热度按时间jpfvwuh41#
async - await关键字模式与箭头函数表达式在node.js中更加清晰。它是异步的,基于承诺的行为,因此代码可以编写得更加清晰,并避免承诺链(如新的Promise/than模式)。
此演示代码是axios.post使用本地运行
Keycloak
令牌服务器调用www.example.com示例它赋给一个变量
token
并打印它。结果
同样的POST API调用的 Postman 调用的屏幕截图。x1c 0d1x
参考
Asynchronous Patterns in Node.js
Arrow function expressions