• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Flutter 게시판 async 함수에서 Future 변수를 리턴후 사용하면 안되는건가요?

async 함수에서 Future 변수를 리턴후 사용하면 안되는건가요?

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #25652

    조남현
    참가자

    인스타그램 get / async / await 부분을 공부중입니다.

    강의 내용을 되새김질 하면서 강의 안보고 싹 다시 코드를 작성해봤는데요,

    아래 "Error!!!" 로 주석달아둔 code pair는 정상 동작하지 않았습니다.

    충분히 작성할만한 패턴이고 로직의 문제도 없는 것 같은데,  왜 안될까요? ㅜㅜ

     

    "Error!!" 주석한 code-pair 사용 시 아래와 같은 에러가 발생합니다.

    getData() 의 return type이 Future<dynamic> 인데 List<dynamic> 꼴에 assign 하려해서 문제가 되는 것 같은데,

    그렇다면 잘 구동되는 "OK" 로 주석 처리된 72 line 도 동일한 문제가 발생해야 하지 않을까요?

    data 의 type을 _Future<dynamic> 으로 선언하는것은 그것대로 문법 오류가 발생합니다.

    async의 세계는 참 알쏭달쏭하네요 ㅜㅜ

    #25660

    codingapple
    키 마스터

    왜냐면 async 함수의 return type은 대부분 Future라서 return 값을 어디 넣고 그러려면 await getData() 해서 써야할걸요 

    귀찮거나 불가능하면 getData() 함수 안에서 setState를 하도록 합시다 

    #25666

    조남현
    참가자

    initState() 에서는 async를 쓸 수 없으니, 확인차 getData2() 를 만들어 하나 더 안으로 내려가봤습니다.

    오... 말씀해주신대로 await getData2() 를 부르니까 문제 없어졌습니다!!

     

    getData2() 자체는 Future 를 명시적으로 return 하는데, await 구문과 만나서 type이 확정되고 나면 List<Dynamic> 에 assign 할 수 있게 되는점이 인상깊었습니다. 감사합니다!

     

     

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠