工作中的一些经验

Promise放在循环里面的问题

  • Promise放在循环里面任务是串行的,所以可以能会造成下面的任务等待很久从而未知错误的产生
  • 暂时规避这个问题的方法:(1)定义一个数组装 Promise初始化的实例 (2)使用 Promise.all将多个promise变成并行执行 (3) 然后再执行循环操作。
// getComponentConstructor是Promise
 const INIT_BUTTON_NUMBER = 3;
        const test = [];
        for (let i = 0; i < INIT_BUTTON_NUMBER; i++) {
            test.push(getComponentConstructor());
        }
        const Constructors = await Promise.all(test);
        Constructors.forEach((Constructor) => {
            const com = new Constructor(element);
            com.config.top = top;
            children.push(com);
            left += 100;
        });

你可能感兴趣的:(工作中的一些经验)