文章预览
老实说我不喜欢用forEach,因为它导致的一些bug总是这么不经意,盘点我不喜欢的原因 原因一:不支持处理异步函数 先看一个例子: async function test ( ) { let arr = [ 3 , 2 , 1 ] arr.forEach( async item => { const res = await mockSync(item) console .log(res) }) console .log( 'end' ) } function mockSync ( x ) { return new Promise ( ( resolve, reject ) => { setTimeout( () => { resolve(x) }, 1000 * x) }) } test() 我们期望的结果是: 3 2 1 end 但是实际上会输出: end 1 2 3 JavaScript 中的 forEach() 方法是一个同步方法,它不支持处理异步函数。如果你在 forEach 中执行了异步函数, forEach() 无法等待异步函数完成,它会继续执行下一项。这意味着如果在 forEach() 中使用异步函
………………………………