forEach
1、首先这是因为foreach是没有return返回值的forEach内部只是简单的callback回调
2、forEach里面的回调函数因为加了async的原因,所以默认会返回一个promise,但是因为forEach的实现并没有返回值,所以导致返回的这个promise对象没人去管了
map
我们会发现其实map返回的并不是一个promise对象,而是一个包含promise对象的数组[promise, promise, promise],其中每个promise对象都是循环迭代产生的结果。而await是处理不了数组的,它只能处理promise对象。
注意
我们在使用promise解决异步逻辑问题时,还是异步效果问题时,尽量使用传统的遍历方法,在开发中,我们解决复杂异步js逻辑问题时,结合promise对象,发布订阅模式去解决这类问题