consti = pipe( asyncIterable, map(a=>myService.requestData(a)), // map into promises wait(), // resolve each Promise timing(t=> { if(t.duration > 3000) { // took over 3s to get the value, needs investigation; thrownewError(`Took too long to get value ${t.value} for index ${t.index}`); } }), catchError((err, ctx) => { console.log(err?.message || err); throwerr; }) );
Measures timings for each value, and provides a notification callback.
It is mainly to help evaluate performance of asynchronous lengthy iterables, though it works synchronously also.
The operator doesn't affect the iteration, unless the callback function throws an error.