title: "where" on iterable with async test
body: <p>Am I missing an integrated functionality of the dart language (or a lightweight library) to do what <code>where()</code> does on iterables, only with an <code>async</code> test? I'm currently using my own implementation:</p>
  
  <pre><code>  Future&lt;Iterable&lt;T&gt;&gt; whereAsync&lt;T&gt;(
        Iterable&lt;T&gt; collection, Future&lt;bool&gt; Function(T) asyncTest) async {
      Map&lt;T, bool&gt; mappedCollection = Map();
      await Future.wait(collection.map((element) async =&gt;
          mappedCollection[element] = await asyncTest(element)));
      return mappedCollection.entries
          .where((entry) =&gt; entry.value)
          .map((entry) =&gt; entry.key);
    }
  </code></pre>