当我使用Promise.all ...然后使用JavaScript中的语法时,有没有办法进行变量设置?

时间:2019-12-12 22:52:42

标签: javascript promise

Promise.all(user_arr.map((item) =>
                    `endpoint/${item}`).map(fetchJson))
                    .then((responseText) => {
                        obj[item] = responseText[0].result
                    })
                    .catch(err => {
                        console.log(err)
                    });

在我的Promise.all API调用中,我想继续item变量,以便obj[item]知道它所指的是哪个项目。但是,这给了我'item' is not defined错误。

是否有正确的方法可以用JavaScript完成此操作?

预先感谢

2 个答案:

答案 0 :(得分:-1)

您只需要重组代码,以便在item上结束。

Promise.all(
    user_arr.map((item) =>
        fetchJson(`endpoint/${item}`)
            .then((responseText) => {
                obj[item] = responseText[0].result
            })
    )
).catch(err => {
    console.log(err);
});

答案 1 :(得分:-1)

如果您知道将仅使用responseText的第一个元素,则没有点映射所有user_arr

相反,请从user_arr[0]开始并避开地图。

var item = user_arr[0];
fetchJson(`endpoint/${item}`))
.then(responseText => {
    obj[item] = responseText.result;
})
.catch(err => {
    console.log(err);
});