因此,我无需交易即可解决问题:
func update(_ req: Request, todos: [CreateTodoRequest]) throws -> Future<HTTPStatus> {
let user = try req.requireAuthenticated(User.self)
// 1
return try todos.map { try Todo(todo: $0, userID: user.requireID()).create(on: req) }
// 2
.flatten(on: req)
// 3
.transform(to: .ok)
}
Run Code Online (Sandbox Code Playgroud)
.create(on: req)返回EventLoopFuture<Todo>。因此todos.map将返回的数组[EventLoopFuture<Todo>]。第二步是将其转换为EventLoopFuture<[Todo]>。第三步是将其转化为HttpStatus.ok响应
| 归档时间: |
|
| 查看次数: |
582 次 |
| 最近记录: |