【发布时间】:2019-07-18 23:34:10
【问题描述】:
首先,Google Chrome 中的 console.log 存在一些问题,无法按预期运行。这不是我在 VSCode 中工作的情况。
-
我们从对服务器的两个
async调用开始。promise_a = fetch(url) promise_b = fetch(url) 由于
fetch结果也是承诺,因此需要在每个项目上调用.json()。正如 Stackoverflow 用户所建议的那样,将使用辅助函数 process - 抱歉丢失了链接。
let promiseResults = []
let process = prom => {
prom.then(data => {
promiseResults.push(data);
});
};
-
Promise.all被调用。结果数组被传递给.then,其中 forEach 每次迭代都会在 item.json() 上调用 process 并将履行的承诺推送到promiseResults。
Promise.all([promise_a, promise_b])
.then(responseArr => {
responseArr.forEach(item => {
process(item.json());
});
})
-
没有为最终的 .then 块提供参数,因为
promiseResults在外部范围内。console.log显示令人困惑的结果。.then(() => { console.log(promiseResults); // correct results console.log(promiseResults[0]); // undefined ?!? })
任何帮助将不胜感激。
【问题讨论】:
标签: javascript promise fetch