diff --git a/app_async/src/main.rs b/app_async/src/main.rs index 6577fcd..88e1256 100644 --- a/app_async/src/main.rs +++ b/app_async/src/main.rs @@ -57,15 +57,18 @@ async fn zip_reader_task(tx: UnboundedSender) { let source_questions = source_questions.stream(); pin_mut!(source_questions); - let converter = source_questions.converter().convert(); - pin_mut!(converter); - - let mut num: u32 = 0; - while let Some(mut question) = converter.next().await { - question.num = 1 + num; - tx.send(question).expect("send"); - num += 1; - } + source_questions + .converter() + .convert() + .enumerate() + .map(|(num, mut question)| { + question.num = 1 + (num as u32); + question + }) + .for_each_concurrent(None, |question| async { + tx.send(question).expect("send"); + }) + .await; println!("read done"); }