반응형
질문
나는 어떤 종류의 봇 (명령 줄 응용 프로그램)을 작성하고 있으며 "forEach" 메서드를 사용할 때 비동기 실행에 문제가 있습니다. 다음은 내가하려는 것을 단순화 한 코드입니다 :
main() async {
print("main start");
await asyncOne();
print("main end");
}
asyncOne() async {
print("asyncOne start");
[1, 2, 3].forEach(await (num) async {
await asyncTwo(num);
});
print("asyncOne end");
}
asyncTwo(num) async
{
print("asyncTwo #${num}");
}
다음은 출력입니다 :
main start
asyncOne start
asyncOne end
main end
asyncTwo #1
asyncTwo #2
asyncTwo #3
내가 얻으려고하는 것은 다음과 같습니다 :
main start
asyncOne start
asyncTwo #1
asyncTwo #2
asyncTwo #3
asyncOne end
main end
누군가 내가 무엇을 잘못하고 있는지 알고 있다면 감사하겠습니다.
답변
Future.forEach를 사용해야합니다.
main() async {
print("main start");
await asyncOne();
print("main end");
}
asyncOne() async {
print("asyncOne start");
await Future.forEach([1, 2, 3], (num) async {
await asyncTwo(num);
});
print("asyncOne end");
}
asyncTwo(num) async
{
print("asyncTwo #${num}");
}
반응형
댓글