我有以下代码:
ElasticService.delete(id) match {
case failure: RequestFailure => complete(StatusCodes.InternalServerError, failure.body.getOrElse("Unknown reason"))
case success: RequestSuccess[DeleteResponse] => {
println(s"$id Deleted")
.....
}
}
“delete”方法实现为:
def delete(id: String): Response[DeleteResponse] = {
client.execute {
deleteById("myIndex", id)
}.await
}
这一切都如预期的那样。但如果我通过用DeleteByQueryResponse替换DeleteResponse来修改匹配块,我会看到匹配仍然会发生。
为什么会这样?我没有看到DeleteResponse和DeleteByQueryResponse之间的层次关系。