작업의 예
비동기 작업을 위해 Future 클래스와 async, await 키워드를 사용한다. 자바스크립트에서 사용하는 Promise가 Dart에서는 Future와 대응된다. Future와 Promise는 모두 싱글 스레드 환경에서 비동기 처리를 위해 존재한다.
http 패키지 의존성 추가하기
dependencies:
http: <latest_version>
http 패키지 추가하기
import 'package:http/http.dart' as http;
import 'dart:convert';
Future을 이용한 서버 데이터 요청 메소드 추가하기
Future<dynamic> getHttpData () async {
var response = await http.get('https://jsonplaceholder.typicode.com/posts/1');
return jsonDecode(response);
}
import 'package:flutter/material.dart';
import 'dart:convert';
void main() => runApp(MyHome());
class MyHome extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: MyTest(),
),
);
}
}
class MyTest extends Statefulwidget {
@override
_MyTestState createState() => _MyTestState();
}
class _MyTestState extends State<MyTest> {
@override
void initState() {
super.initState();
func();
}
Future<dynamic> test1() async {
return await jsonDecode(http.get('https://jsonplaceholder.typicode.com/posts/1'));
}
Future<dynamic> test2() async {
return await jsonDecode(http.get('https://jsonplaceholder.typicode.com/posts/2'));
}
Future<dynamic> test3() async {
return await jsonDecode(http.get('https://jsonplaceholder.typicode.com/posts/3'));
}
void func() async {
await test1();
await test2();
await test3();
}
@override
Widget build(BuildContext context) {
return Container(
);
}
}
[Spring] @Configuration과 @Component의 차이 (0) | 2021.08.17 |
---|---|
[Spring] 어노테이션(Annotaiton) (0) | 2021.08.08 |
[Kotlin] 액티비티(Activity) 사이에 값 주고 받기 (0) | 2021.07.01 |
[Flutter] StatefulWidget의 라이프 사이클 (0) | 2021.06.30 |
Flutter 개발환경 구축 (Windows) (0) | 2021.06.18 |
댓글 영역