Tôi đang cố gắng viết thông số kỹ thuật cho một thứ gì đó bằng cách sử dụng tương lai và tôi không chắc chắn cách sử dụng đặc tính Futures
. Tôi phải vượt qua whenReady
một FutureConcept
, nhưng tôi không thể tìm thấy cách tôi nên xây dựng một cái từ một số Future
. Các tài liệu đọc:chuyển giao tương lai cho khiReady không thành công
Để làm whenReady hơn áp dụng rộng rãi, các loại tương lai nó chấp nhận là một FutureConcept [T], trong đó T là loại giá trị hứa bởi tương lai. Vượt qua tương lai khi WhenReady yêu cầu chuyển đổi tiềm ẩn từ loại tương lai bạn muốn chuyển (loại được lập mô hình) thành FutureConcept [T].
Từ đó tôi hiểu rằng tôi phải viết một chuyển đổi ngầm giữa một Future
và FutureConcept
(mà có vẻ không đúng với tôi, vì nó dường như nên soạn sẵn, nhưng đó là điều duy nhất tôi có thể làm cho nó) . Tôi không thể tìm ra cách để làm điều đó, mặc dù các tài liệu của FutureConcept nói với tôi handily
Xem tài liệu cho tương lai đặc điểm cho các chi tiết về cú pháp đặc điểm này cung cấp để thử nghiệm với tương lai.
làm cho tôi trở thành vòng tròn đầy đủ. Ví dụ đơn giản nhất tôi nấu chín lên là
import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global
import org.scalatest.WordSpecLike
import org.scalatest.concurrent._
class FutureSpec extends WordSpecLike with Futures {
"A future" must {
"be a valid argument for whenReady" in {
val fut = future { 42 }
whenReady(fut) { res => s should be 42 }
}
}
}
Điều đó không có biên dịch với
- loại không phù hợp; tìm thấy: scala.concurrent.Future [Int] bắt buộc: FutureSpec.this.FutureConcept [?]
- ';' dự kiến nhưng số nguyên được tìm thấy.
tôi nên làm gì khác?
Câu trả lời này là hoàn toàn đúng, chỉ cần thêm một chút rõ ràng: Thay đổi 'với Futures' 'với ScalaFutures' –
cảm ơn bạn, tốt hơn chưa? – Martijn
Điều đó thật hoàn hảo. Câu trả lời của bạn đã giúp tôi rất nhiều. Chúc mừng! –