join3<A, B, C, R>  static method 
Constructs a Stream that awaits the last values the provided Streams,
then calls the combiner to emit an event of type R.
After this event, the Stream closes.
Implementation
static ForkJoinStream<dynamic, R> join3<A, B, C, R>(
  Stream<A> streamA,
  Stream<B> streamB,
  Stream<C> streamC,
  R Function(A a, B b, C c) combiner,
) =>
    ForkJoinStream<dynamic, R>(
      [streamA, streamB, streamC],
      (List<dynamic> values) {
        return combiner(
          values[0] as A,
          values[1] as B,
          values[2] as C,
        );
      },
    );