runAsync<T> static method
Null safety
- AsyncRun run,
- {FutureExecutor? futureExecutor}
执行一个异步任务
Implementation
static CompletableFuture<T> runAsync<T>(AsyncRun run,
{FutureExecutor? futureExecutor}) {
CompletableFuture<T> completableFuture = CompletableFuture<T>();
if (futureExecutor == null) {
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;
}