微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

循环内的api调用后未添加列表

如何解决循环内的api调用后未添加列表

我也想寻求帮助和解释,为什么会发生以下情况。

        var list = []
        if (undefined !== resp.data) {
            Array.from(resp.data).forEach(async (data) => {
                let id = data.id
                await axios.get(`http://<server>:<port>/api/${id}`,{
                    headers: {
                        'Authorization': `${req.headers.authorization}`
                    }
                }).then(resp => {
                    list.push(id)
                }).catch(err => {
                    console.log(`error ${err}`)
                })
                console.log(JSON.stringify(list))
            })
        }
        console.log('Last : ' + JSON.stringify(list))

在上述情况下,假设axios获取请求成功,因此它将在list添加ID。

,但是最后的输出仍然为空[]。 我也观察到一些奇怪的情况

enter image description here

您可以看到,即使我在此处添加console.log('Last : ' + JSON.stringify(list))关键字,也首先执行了await

最后,是否可以解决此问题?我只想在列表末尾添加项目。 Array.from.forEach()之前的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。