stiftungswo / Dime

DimeERP - Timetracker, Offers & Invoices
MIT License
5 stars 1 forks source link

StatusService via callbacks benutzen #131

Closed paulsonnenschein closed 6 years ago

paulsonnenschein commented 6 years ago

Reporter: Zivi


Aktuell wird der StatusService etwa so benutzt:

this.statusservice.setStatusToLoading();
try {
  var result = await fetchData();
  this.statusservice.setStatusToSuccess();
} catch (e, stack) {
  this.statusservice.setStatusToError(e, stack);
}

Um die API robuster zu machen (aktuell kann etwa man setStatusToSuccess() vergessen), könnte man den StatusService umbauen so dass er mit callbacks (mit Futures) arbeitet.

Das könnte dann etwa so aussehen:

var result = await this.statusservice.run(() => {
  return await fetchData();
}, onError: (e) => print(e)); // onError ist optional

Intern wird immer noch das gleiche wie vorher gemacht, aber dieser Code ist nun nicht mehr überall dupliziert und weniger anfällig für Fehler.