resultOrThrow method
获取结果或抛出异常
如果任务执行成功即WorkData.success为true时,返回WorkData.result的未来。 如果任务执行失败即WorkData.success为false时,则抛出异常WorkError。
onDo
为任务执行成功即WorkData.success为true时,可选的执行函数,
参数为WorkData.result此函数的执行不会修改方法最终返回的值。
Implementation
Future<D?> resultOrThrow([FutureOr<void> Function(D? value)? onDo]) =>
_completer.future.then((value) {
if (!value.success) {
return Future.error(WorkError._(
_tag, value.errorType ?? WorkErrorType.other, value.message));
}
if (onDo != null) {
final done = onDo(value.result);
if (done is Future<void>) {
return done.then((_) => value.result);
}
}
return Future.value(value.result);
});