问题描述
用for of 循环遍历数据,生成多个confirm弹窗.然后逐个关闭
遇到问题:
只会生成以最后一条数据为准的confirm弹窗,详细情况见图例


如果所示数组长度为5,但是只弹窗了最后一个数据的弹窗.我们想要的效果是生成五个弹窗,然后逐步关闭
原因分析:
因为异步执行机制会导致只能生成最后一次循环结果,不能生成多个confirm,导致需求无法完成.
解决方案1(推荐使用的方法for await…of):
使用for await…of 在完成当前confirm弹窗并且回调后,在弹出下一次的confirm弹窗

第一次弹窗-第一条数据

点击取消后出现-第二次弹窗-第二条数据

以此类推,可完成需求
解决方案2(不推荐使用,递归):
.
第一次弹窗-谈最后一条数据为主的弹窗

点击取消或者确定后出现第二次弹窗,显示倒数第二条数据,以此类推

注意事项:
类似于 await 运算符一样,该语句只能在一个async function 内部使用。for await…of 不适用于不是异步可迭代的异步迭代器。
本文探讨了在JavaScript中使用for...of循环遍历数据生成多个confirm弹窗时遇到的问题,即由于异步执行机制,只会显示最后一个数据的弹窗。解决方案包括使用forawait...of循环,确保每个confirm弹窗在上一个关闭后才显示,以及递归方法,但后者不被推荐。注意,forawait...of只能在async函数内部使用,并且不适用于非异步可迭代的异步迭代器。
2113

被折叠的 条评论
为什么被折叠?



