当我创建一个future
或应用诸如onSuccess
and之类的方法map
时,我可以为它们指定 ExecutionContext。
例如,
val f = future {
// code
} executionContext
f.map(someFunction)(executionContext)
f onSuccess {
// code
} executionContext
但是,如果我使用对未来的理解,我如何为该yield
部分指定 ExecutionContext?
for {
f <- future1
g <- future2
} yield {
// code to be executed after future1 onSuccess and future2 onSuccess
// What ExecutionContext runs this code?
} // (executionContext) here does not work
而且,如果未指定,什么 ExecutionContext 会在 yield 中运行代码?
编辑
好的。感谢答案,我发现了一些东西。
如果我不定义或导入隐式ExecutionContext(如Implicits.global
),则 for-comprehension 不会编译。这意味着,理解使用隐式 ExecutionContext。
那么,如何在没有隐式ExecutionContext的情况下使用for-comprehension,即如何指定?