[Fluter/Dart] async await에 대한 <비동기 처리>

개요


오늘 Dart의 비동기 처리를 배웠습니다.
Async await 배웠어요.✏️

링크 세트

  • [공식] async await
  • 컨텐트


    동기 처리, 비동기 처리는

  • 동기식 프로세싱
    자체 처리가 완료될 때까지 다음 처리를 수행하지 않음
  • 비동기식 프로세싱
    처리가 완료되기 전에 다른 처리를 수행할 수 있음
  • 한번 해 보았다.


    const delays = [1, 2, 3];
    
    void main() {
      printLinesWithDelay();
    }
    
    Future<void> printLinesWithDelay() async {
      for (final string in generateFutureStrings()) {
        print(await string);
      }
    }
    
    List<Future<String>> generateFutureStrings() {
      return delays.map((delay) {
        return Future.delayed(
          Duration(seconds: delay),
          () =>
              'Printed with $delay second${delay > 1 ? 's' : ''} delay ${delay == delays.last ? '\nTa-da! All lines are printed!' : ''}',
        );
      }).toList();
    }
    
    [해설]
    이것은 1초에 한 번씩 명령행 메시지를 표시하는 프로그램이다.
    [포인트]
  • Future.delayed(a, b)의 경우a => (Durationという指定期間待ったあと処理を実行する)b => (実行する処理)
  • 시간의 처리
  • // 1秒後にしょりを実行。
    Future.delayed(const Duration(millisecond: 1000), () {
    print('Hello World');
    });
    
    // 1.5秒まつ
    Future.delayed(const Duration(millisecond: 1500),);
    print('Hello World');
    
    상술한 결과는 같고 사용 방법을 알면 여러 가지 상황에서 사용할 수 있다.

    기타


    ASync await 를 배우는 과정에서
    '아이솔레이트 아세요?'
    이렇게 말했는데, 조사해 보니, 비동기적으로 자주 사용하는 컴퓨터 처리에 포함된 것 같다.
  • 【공식】dart:isolate
  • 컴퓨터
  • 잘 모르겠지만.
    HTTP 통신 등의 결과를 얻은 상태에서 사용된 것 같다then 처리.
    Isolates의 처리 자체도 존재하지만 사용 방법을 잘 모른다.Isolates 내에서만 처리되고 정보만으로도 결과를 받을 수 있을 것 같습니다.
    나는 시간이 있을 때 좀 더 깊게 해 보고 싶다.

    좋은 웹페이지 즐겨찾기