startApp method
void
startApp()
Implementation
void startApp() async {
_timeRecord = DateTime.now().millisecondsSinceEpoch;
_emit(const AppStarting());
S data;
try {
data = await repository.initApp();
} catch (e, s) {
_emit(AppStartFailed(e, s));
return;
}
int cost = DateTime.now().millisecondsSinceEpoch - _timeRecord;
int waitTime = minStartDurationMs - cost;
if (waitTime > 0) {
_emit(AppLoadDone(cost, data));
await Future<void>.delayed(Duration(milliseconds: waitTime));
} else {
_emit(AppLoadDone(cost, data));
await Future<void>.delayed(const Duration(milliseconds: 50));
}
_emit(AppStartSuccess(data));
}