2016-08-03 67 views

回答

3

使用Duration.Inf的最佳做法是什麼?

最好的做法是不會阻止使用Await可言,並且使用某種回調來處理Future異步,像mapforeachonSuccessonFailure,等等,這取決於你的使用情況。

如果您無論出於何種原因必須阻止使用Await(實際上應該有很少的理由),您應該設置一個有限的Duration以合理的限制。例如,如果您知道someFuture通常需要5秒才能完成,則可以將超時設置爲10秒。否則,如果Future未完成,則線程調用Await可以永久掛起。

不會有好結果可以出來使用Duration.Inf,除非你想應用程序掛起無限期地等待姍姍來遲Future,而這樣做是絕對關鍵的。但總的來說,讓它崩潰比根本沒有迴應更好。