2013-08-23 14 views
10

başarısız olur. Ben FutureConceptwhenReady geçmek zorunda, ama Future birini oluşturmalıdır nasıl bulamıyor. dokümantasyon okur: Ben geleceği kullanarak şey için bir spec yazmaya çalışıyorum ve ben <code>Futures</code> özelliği kullanmak gerekiyor emin değilim

whenReady daha geniş bir uygulama yapmak için, kabul geleceğin tipi T değerinin türünün daha tarafından vaat bir FutureConcept [T] vardır. whenReady bir gelecek geçmek, FutureConcept [T] olarak (modellenen türü) geçmek isteyen geleceğin türünden bir örtük dönüşüm gerektirir. Ben Future ve FutureConcept arasında örtük dönüştürme yazmak zorunda olduğunu anlıyoruz (klişe olması gerektiği gibi görünüyor, bana yanlış geliyor, ama bundan yapabilirsiniz tek şey) olduğu itibaren

. Gerçi FutureConcept dokümantasyonu dezavantaj

bu özellik gelecekleri ile test edilmesini sağlamaktadır sözdizimine ilişkin ayrıntılar için sürekli Vadeli belgelerine bakın bana söyler bunun nasıl anlamaya olamaz. Bana yapma

tam daire gelir. Ben pişmiş basit örnek

  • tipi uyumsuzluğu ile derleme değil Yani

    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 } 
        } 
        } 
    } 
    

    olduğu; Bulunan: scala.concurrent.Future [Uluslararası] gereklidir: FutureSpec.this.FutureConcept

  • ';' [?] beklenen ancak tamsayı literal bulundu.

Farklı ne yapmalıyım?

cevap

23

'da değil, ScalaFutures'da bulunacak olan örtülü dönüşümleri buldum. Sınıf beyanı

Bunun dışında bir takım başka hatalar da vardır. FutureSpec da Matchers karışık olmalı ve res => s saçma yazım hatası olduğunu ve res => res

+1

Bu cevap kesinlikle doğru, sadece netlik biraz eklemek edilir olmalıdır: için 'Futures ile' Değişim –

+0

'ScalaFutures ile', teşekkürler Bu daha mı iyi? – Martijn

+0

Bu mükemmel. Cevabınız bana çok yardımcı oldu. Şerefe! –