首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从已解析的承诺数组中获取值

从已解析的承诺数组中获取值
EN

Stack Overflow用户
提问于 2017-10-03 21:38:47
回答 1查看 2.2K关注 0票数 0

我使用axios.all通过一个条目数组调用循环,并为每个条目发出一个get请求,这样我就可以按照正确的顺序保存它们的数据。现在,我有一系列的承诺,所有这些都是用正确的数据来解析的,当所有这些都被触发时,回调函数就会被触发。

现在我只需要循环遍历承诺并保存它们的值,但是我不知道如何访问它们的值!

代码语言:javascript
代码运行次数:0
运行
复制
let promises = [];

for (let report of response.data.res.body.result) {
    let dto2 = {
        customerId: state.member.customerId,
        reportToken: report.reportToken
    }

    promises.push(axios.post('http://localhost:3001/api/pullReport', dto2));
}
console.log("promises", promises);

axios.all(promises).then(function() {
    console.log("done!");
    promises.forEach(function(res) {
        console.log("res", res);
        // commit('SAVE_REPORT', res.value);
    })
    // resolve('Reports saved.');
});

下面是每个承诺在forEach循环中得到安慰时的样子:

代码语言:javascript
代码运行次数:0
运行
复制
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: Object <<<<<<<<<<< NEED THIS

我只需要能够用SAVE_REPORT对象调用提交(‘PromiseValue’),但是我不知道该传递什么!我试过res.value,res.val,res.promiseValue..。这有什么秘密吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-03 21:43:08

axios.all创建了一个新的承诺,它将通过一个结果数组来解决。因此,要与这些结果交互,只需向.then块中的函数添加一个参数:

代码语言:javascript
代码运行次数:0
运行
复制
axios.all(promises).then(function(results) {
    results.forEach(function(res) {
        commit('SAVE_REPORT', res.value);
    });
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46553839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档