【发布时间】:2019-06-13 00:09:59
【问题描述】:
我试图在 forEach 循环内调用一个请求,但我的代码在循环完成之前退出了循环。有没有办法确保循环在下一个代码执行之前完成? (我对 Promise 比较陌生)
我的代码遵循这种格式:
let arr = [1, 2, 3, 4, 5, 6];
arr.forEach(num => {
return request('http://google.com')
.get('/')
.then(() => {
console.log(num);
});
});
console.log('HERE');
这段代码^记录
HERE
1
2
6
4
5
3
(这些数字是随机排列的,这对我来说并不重要)
但我希望它记录
1
2
3
4
5
6
HERE
我该怎么做?
【问题讨论】:
-
代码在完成之前不会退出循环,这就是异步代码的工作方式。你触发了一堆异步调用,然后它就停止了。循环结束后调用结束。
标签: javascript foreach request-promise