【发布时间】:2021-07-20 18:59:20
【问题描述】:
我想调用 api 并使用 api 结果进行进一步计算但不能这样做。即使在使用 async/await 之后。我将控制台值设置为未定义。我也尝试使用承诺,但我不知道如何赋予它授权属性。 我对 js 很幼稚,有没有人可以帮忙解决我哪里出错了?
var plan;
async function makeRequest() {
const config = {
"url": "https://jsonplaceholder.typicode.com/posts/1",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "[Auth_url]"
},
};
let res = await axios(config)
console.log(res);
plan = res;
}
makeRequest();
console.log("plan",plan)
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
【问题讨论】:
-
错误是什么?
-
告诉我们你的错误
-
这甚至不是异步调用的问题,你只是在调用你的函数之前记录了一个未声明的变量。如果您之后登录(最好也声明您的变量 - 由于同样的原因,分配全局变量的非严格巫术还不会发生),请参阅how-do-i-return-the-response-from-an-asynchronous-call
-
参考我上面链接的帖子,它现在是它的直接副本。
-
需要一些转帐,是的。对于您的具体情况,它不是可复制的代码。一般的问题是,您需要接受什么(异步调用尚未完成,当您调用
console.log时,尚未分配plan,以及如何处理)。这与细节无关,异步调用是$.ajax,还是fetch,还是makeRequest,或者其他什么。
标签: javascript api axios fetch