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;
});