Instance Method
tryFuture(_:)
An alternate name for this would be
future(catching:), but with that name, trailing closure syntax just looks like el.future { ... }, which does not indicate to readers of the code that it is the error-capturing version. Since such an indication is highly desirable, a slightly less idiomatic name is used instead.func tryFuture<T>(_ work: @escaping () throws -> T) -> EventLoopFuture<T>
Parameters
workThe potentially throwing closure to execute as a future. If the closure throws, a failed future is returned.
Discussion
This method replaces this code:
return something.eventLoop.future().flatMapThrowing {
With this code:
return something.eventLoop.tryFuture {
That’s pretty much it. It’s sugar.
See Also
EventLoop and EventLoopGroup
func flatten<T>([EventLoopFuture<T>]) -> EventLoopFuture<[T]>Returns a newEventLoopFuturethat succeeds only when all the provided futures succeed. The newEventLoopFuturecontains an array of results, maintaining same ordering as the futures.func flatten([EventLoopFuture<Void>]) -> EventLoopFuture<Void>Returns a newEventLoopFuturethat succeeds only when all the provided futures succeed, ignoring the resolved values.func future() -> EventLoopFuture<Void>Creates a new, succeededEventLoopFuturefrom the worker’s event loop with aVoidvalue.func future<T>(error: any Error) -> EventLoopFuture<T>Creates a new, failedEventLoopFuturefrom the worker’s event loop.func future<T>(T) -> EventLoopFuture<T>Creates a new, succeededEventLoopFuturefrom the worker’s event loop.func future<T>(result: Result<T, any Error>) -> EventLoopFuture<T>Creates a newFuturefrom the worker’s event loop, succeeded or failed based on the inputResult.