[[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>`へ変換可能となる。