[[std.result.Result]]には以下のような[[std.iter.FromIterator]]が実装されているため、`Result<T, E>`の[[イテレータ (JavaScript)]]から`Result<T[], E>`へcollectが可能になっている。
```rust
impl<A, E, V: FromIterator<A>> FromIterator<Result<A, E>> for Result<V, E>
```
`A = i32`, `E = String`とすれば
```rust
impl<i32, String, V: FromIterator<i32>> FromIterator<Result<i32, String>> for Result<V, String>
```
ここで[[std.vec.Vec]]には`impl<T> FromIterator<T> for Vec<T>`が実装されているため、`V = Vec<i32>`は成立する。
それゆえ
```rust
impl<i32, String, Vec<i32>> FromIterator<Result<i32, String>> for Result<Vec<i32>, String>
```
となり、[[std.iter.FromIterator]]のメソッド
```rust
fn from_iter<I: IntoIterator<Item = Result<A, E>>>(iter: I) -> Result<V, E>
```
は
```rust
fn from_iter<I: IntoIterator<Item = Result<i32, String>>>(iter: I) -> Result<Vec<i32>, E>
```
となる。
よって、`Result<i32, String>`の[[イテレータ (JavaScript)]]は`collect`によって`Result<Vec<i32>, E>`へ変換可能となる。