我是 Play 新手!我有一个关于 HTTP 异步编程的问题。 我有一段这样的代码:
public void someMethod() {
for (int i = 0; i < 100; i++) {
doSomething();
await(someTime);
}
}
此方法由用户通过发送 GET/POST 请求调用。 它会进行一些计算 (doSomething()),然后等待一段时间。 但是:用户必须能够从 await(someTime) 中“返回”,并且循环应该继续下一次迭代,而无需等待所有 “someTime” 时间。
示例代码:
public void nextAwait() {
continueАForLoop();
}
用户通过 GET/POST 调用 nextAwait() 方法。 如果它被调用,循环将继续,doSomething() 将(必须)立即被调用!
那么,在Play中有可能吗?
提前感谢您的回答:)
最佳答案
对此的简单回答是等待更短的时间,然后检查用户交互的一些值,然后继续等待。
例如,假设您的总等待时间为 10 秒
public void someMethod() {
for (int i = 0; i < 100; i++) {
doSomething();
for (int j=0; j<10; j++) {
if (!userInterrupt) await("1s");
}
}
}
因此,这会将您的等待时间缩短为 1 秒,并检查一个值以查看用户是否中断了等待。这意味着在释放处理之前,用户将等待最多 1 秒。
关于java - 从其他方法的 await() 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7640626/