|
- import 'dart:async';
-
- import 'package:bloc/bloc.dart';
- import 'package:zhiying_comm/pages/empty_page/bloc/empty_page_repository.dart';
- import 'package:zhiying_comm/util/empty_util.dart';
- import 'empty_page_state.dart';
- import 'empty_page_event.dart';
-
- class EmptyPageBloc extends Bloc<EmptyPageEvent, EmptyPageState> {
- @override
- EmptyPageState get initialState => EmptyPageInitial();
-
- EmptyPageRepository repository;
-
- EmptyPageBloc(this.repository);
-
- @override
- Stream<EmptyPageState> mapEventToState(
- EmptyPageEvent event,
- ) async* {
- if (event is EmptyPageInitEvent) {
- yield* _mapInitEventToState(event);
- }
- }
-
- /// 初始化
- Stream<EmptyPageState> _mapInitEventToState(EmptyPageInitEvent event) async* {
- var cache = await repository.fetchCacheData();
- if (!EmptyUtil.isEmpty(cache)) {
- yield EmptyPageLoadedState(model: cache);
- }
- var result = await repository.fetchNetData();
- if (!EmptyUtil.isEmpty(result)) {
- yield EmptyPageLoadedState(model: result);
- } else {
- yield EmptyPageErrorState();
- }
- }
- }
|