Vapor:Post 处理查询结果?
Vapor: Post processing on a query result?
Vapor/Future菜鸟来了,跟类型系统打架
我想对查询结果做一些处理:
- 进行查询。
- Change/save 个结果。
- Return 改变了结果。
例如:
func myIndex(_ req: Request) throws -> Future<[Todo]> {
return Todo.query(on: req)
.all()
.flatMap { allToDos in
allToDos.flatMap { toDo in
// change toDoch
return toDo.save(on: req).flatMap { [=11=] }
}
}
}
结果是:
那么这种事情的正确模式是什么?
使用flatten
func changeAllTodos(_ req: Request) throws -> Future<HTTPStatus> {
return Todo.query(on: req).all().flatMap { allToDos in
return allToDos.map { toDo in
// change toDoch
return toDo.save(on: req).transform(to: ())
}.flatten(on: req).transform(to: .ok)
}
}
Vapor/Future菜鸟来了,跟类型系统打架
我想对查询结果做一些处理:
- 进行查询。
- Change/save 个结果。
- Return 改变了结果。
例如:
func myIndex(_ req: Request) throws -> Future<[Todo]> {
return Todo.query(on: req)
.all()
.flatMap { allToDos in
allToDos.flatMap { toDo in
// change toDoch
return toDo.save(on: req).flatMap { [=11=] }
}
}
}
结果是:
那么这种事情的正确模式是什么?
使用flatten
func changeAllTodos(_ req: Request) throws -> Future<HTTPStatus> {
return Todo.query(on: req).all().flatMap { allToDos in
return allToDos.map { toDo in
// change toDoch
return toDo.save(on: req).transform(to: ())
}.flatten(on: req).transform(to: .ok)
}
}