작성
·
294
0
void onLogoTap() async {
final video = await ImagePicker().pickVideo(
source: ImageSource.gallery,
);
if (video != null) {
setState(() {
this.video = video;
});}}
여기에서 if문을 안쓰고 setstate를 해줘도 동일하지 않나요?
설명은 이미지피커에서 비디오를 고르지않고 빠져나오지않을경우 video가 null이 될수있다 라고하셨습니다.
onLogoTap은 비동기 함수여서 pickvideo까지 기다린다음에 setstate가 실행될텐데 이미지를 고르지 않고 이미지픽커를 빠져나오면 await부분이 만족되지않아서 onlogotap안의 다음코드를 실행하지않기때문에, video가 null인 상황은 없지않을까요?
답변 1
0
안녕하세요!
await가 만족되지 않는다는게 무슨 말씀이신지 모르겠습니다.
await는 단순히 Future 반환을 기다리는 것이기때문에 "만족"이라는 개념이 없습니다.
에러가 나지 않는다면 null이나 void를 반환하더라도 다음 코드가 실행 될 수 있습니다.
이부분은 제 Dart언어 비동기 프로그래밍 강의를 한번 더 참고해보시면 좋을 것 같습니다!
감사합니다.