元素子元素的并发修改

bud*_*dde 4 dom dart

在每个子元素之后将新元素插入给定元素(element)的"最佳"方法是什么.

以下自然会给出并发修改异常

element.children.forEach((Element child){
  var new_child = new DivElement();
  element.insertBefore(new_child, child);
});
Run Code Online (Sandbox Code Playgroud)

Ale*_*uin 5

最简单的方法ConcurrentModificationError是在进行修改之前通过调用toList()复制列表.

element.children.toList().forEach((Element child){
  var new_child = new DivElement();
  element.insertBefore(new_child, child);
});
Run Code Online (Sandbox Code Playgroud)