for嵌套setTimeout的心得

export default {
    data() {
        return {
            dialogList: []
        }
    },
    created() {
        this.setList()
    },
    methods: {
        setList() {
            const data = ['大','吉','大','利','今','晚','吃','鸡']
            for (let index in data) {
                let option = {}
                option.index = index
                option.text = data[index]
                setTimeout(() => {
                    // 方法1,当data的length值较大时,for循环与setTimeout不同步,for优先完成
                    // for里的操作不是每秒间隔执行,虽然能console出来,但实际长度会出异常,无法读取渲染
                    // this.dialogList[index] = option
// 方法2,这一步用方法代替好了,把值push进去,解决 this.setOption(option) }, index * 1000) } }, setOption(option) { this.dialogList.push(option) } } }
原文地址:https://www.cnblogs.com/wx3091/p/12193387.html