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
flatten(_:)Returns a newEventLoopFuturethat succeeds only when all the provided futures succeed. The newEventLoopFuturecontains an array of results, maintaining same ordering as the futures.flatten(_:)Returns a newEventLoopFuturethat succeeds only when all the provided futures succeed, ignoring the resolved values.future()Creates a new, succeededEventLoopFuturefrom the worker’s event loop with aVoidvalue.future(error:)Creates a new, failedEventLoopFuturefrom the worker’s event loop.future(_:)Creates a new, succeededEventLoopFuturefrom the worker’s event loop.future(result:)Creates a newFuturefrom the worker’s event loop, succeeded or failed based on the inputResult.