async-await - 节点异步 axios
问题描述
帮助解决节点和异步问题。在第一个函数中,我从外部 api 获取令牌 -
const Token = function getToken(data)
return axios(config)
.then((response) =>
this.response = response.data;
return this.response.access_token;)
.catch(function (error)
console.log(error);
);
然后,在以下函数中,我可以将此令牌输出到屏幕 -
const myToken = Token(data);
myToken.then(function (result)
console.log(result); //here I see a real token
);
那我怎么能使用这个令牌呢?
Trying to do so -
const test = myToken;
console.log(test);
给予 - 未决的承诺
解决方案
你可以使用await
-
const token = await myToken
await
将解包 promise 的值,类似于.then()
但让您使用更同步的代码样式。
请注意,您还需要使用async
关键字装饰上述代码所在的函数。
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await
推荐阅读
- jestjs - 开玩笑嘲笑 axios 的请求方法给出错误
- google-sheets - 如何将 Google Sheets 链接到 IBM Watson Assistant?
- beautifulsoup - 刮zomato.com的问题
- javascript - 如何使用 php 从 mysql 检索数据并在 javascript 上显示?
- r - 如何使用 for 循环在没有 5 组这么多行的情况下循环?
- python - 如何在烧瓶中使用熊猫读取文件
- react-native - 如何使用 z-index animate 创建轮播
- sql-server - 是否可以在 SQL Server 的 .bak 文件中选择要恢复的特定表或视图或任何数据库对象?
- python - 如何在 Python 中获取下个月的第一天?
- mysql - 如何使用 Google App Script 将数据插入外部数据库:不使用 Google SpreadSheet 的 MySQL