2016-08-03 41 views

回答

3

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

最好的做法是不会阻止使用Await可言,并且使用某种回调来处理Future异步,像mapforeachonSuccessonFailure,等等,这取决于你的使用情况。

如果您无论出于何种原因必须阻止使用Await(实际上应该有很少的理由),您应该设置一个有限的Duration以合理的限制。例如,如果您知道someFuture通常需要5秒才能完成,则可以将超时设置为10秒。否则,如果Future未完成,则线程调用Await可以永久挂起。

不会有好结果可以出来使用Duration.Inf,除非你想应用程序挂起无限期地等待姗姗来迟Future,而这样做是绝对关键的。但总的来说,让它崩溃比根本没有回应更好。