element-UI$confirm消息提示搭配for of 使用.不能生成多个confirm的问题.

问题描述

用for of 循环遍历数据,生成多个confirm弹窗.然后逐个关闭

遇到问题:

只会生成以最后一条数据为准的confirm弹窗,详细情况见图例
element-UI$confirm消息提示搭配for of 使用.不能生成多个confirm的问题._第1张图片
element-UI$confirm消息提示搭配for of 使用.不能生成多个confirm的问题._第2张图片
如果所示数组长度为5,但是只弹窗了最后一个数据的弹窗.我们想要的效果是生成五个弹窗,然后逐步关闭

原因分析:

因为异步执行机制会导致只能生成最后一次循环结果,不能生成多个confirm,导致需求无法完成.


解决方案1(推荐使用的方法for await…of):

使用for await…of 在完成当前confirm弹窗并且回调后,在弹出下一次的confirm弹窗

element-UI$confirm消息提示搭配for of 使用.不能生成多个confirm的问题._第3张图片
第一次弹窗-第一条数据
element-UI$confirm消息提示搭配for of 使用.不能生成多个confirm的问题._第4张图片
点击取消后出现-第二次弹窗-第二条数据

element-UI$confirm消息提示搭配for of 使用.不能生成多个confirm的问题._第5张图片
以此类推,可完成需求

解决方案2(不推荐使用,递归):

.element-UI$confirm消息提示搭配for of 使用.不能生成多个confirm的问题._第6张图片
第一次弹窗-谈最后一条数据为主的弹窗

element-UI$confirm消息提示搭配for of 使用.不能生成多个confirm的问题._第7张图片
点击取消或者确定后出现第二次弹窗,显示倒数第二条数据,以此类推
element-UI$confirm消息提示搭配for of 使用.不能生成多个confirm的问题._第8张图片

注意事项:

类似于 await 运算符一样,该语句只能在一个async function 内部使用。for await…of 不适用于不是异步可迭代的异步迭代器。

你可能感兴趣的:(web前端,elementui,javascript,vue.js)