Javascript如何将获取的数据推送到数组[重复]

问题描述 投票:0回答:1

我只是重述一些基本的 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()

提前致谢

javascript arrays fetch-api
1个回答
1
投票

你被承诺绊倒了!

基本上,您在调用

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);
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.