我只是重述一些基本的 JavaScript,你知道我哪里出错了吗?我想接收响应并将其放入函数内的数组中。以下是我尝试过的。
// simple api request
function abs() {
var a = []
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(res => {return res.json()})
.then(data => a.push(data))
console.log(a)
}
abs()
提前致谢
你被承诺绊倒了!
基本上,您在调用
console.log(a)
之前 a.push(data)
被调用,因为 then
处理程序被异步调用。
如果您想在另一个函数中使用
fetch
的响应,可以通过多种方式在 Javascript 中实现。正如 @Matt 在评论中链接的那样,这个问题深入探讨了如何做到这一点。
最简单的方法?更新您的
abs
函数以接受参数 handler
并将数据传递给处理程序:
// handler is a function that accepts an array
function abs(handler) {
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(res => {return res.json()})
.then(data => {
var a = [];
a.push(data);
handler(a);
});
}