sync<T> static method

Future<T> sync<T>(
  1. FutureOr<T> computation(),
  2. CancellationToken? cancellationToken, {
  3. OnCancelCallback? onCancel,
})

Returns a future containing the result of immediately calling computation, unless cancelled.

This is the cancellable equivalent to Future.sync().

If the cancellationToken has already been cancelled when this is called, the computation will not run.

Implementation

static Future<T> sync<T>(
  FutureOr<T> Function() computation,
  CancellationToken? cancellationToken, {
  OnCancelCallback? onCancel,
}) {
  if (cancellationToken?.isCancelled ?? false) {
    return Future<T>.error(cancellationToken!.exception!);
  } else {
    return CancellableFuture<T>._(
      Future.sync(computation),
      cancellationToken,
      onCancel: onCancel,
    ).future;
  }
}