runAsync<T> static method

CompletableFuture<T> runAsync<T>(
  1. AsyncRun run,
  2. {FutureExecutor? futureExecutor}
)

执行一个异步任务

Implementation

static CompletableFuture<T> runAsync<T>(AsyncRun run,
    {FutureExecutor? futureExecutor}) {
  CompletableFuture<T> completableFuture = CompletableFuture<T>();
  futureExecutor ??= _futureExecutor;
  futureExecutor.execute(() async {
    try {
      if (!completableFuture._isCancel) {
        completableFuture._isRun = true;
        completableFuture.result = await run();
        completableFuture._isRun = false;
        completableFuture._runCallback();
      }
    } catch (a, s) {
      completableFuture.error = a;
      completableFuture.stackTrace = s;
      completableFuture._errorCallback();
    } finally {
      completableFuture._completeCallback();
    }
  });
  return completableFuture;
}