Java 无承诺异步代码
在操作内部,如果不需要承诺来产生实际结果,那么执行某些异步代码的最佳方式是什么 例如,我创建了一个RecordedAction来与其他Action组合。它执行一个昂贵的操作(写入数据库),但不会产生注释操作所需的内容。换句话说,我不需要承诺,但我需要一个单独的执行上下文 我可以这样做:Java 无承诺异步代码,java,asynchronous,playframework,Java,Asynchronous,Playframework,在操作内部,如果不需要承诺来产生实际结果,那么执行某些异步代码的最佳方式是什么 例如,我创建了一个RecordedAction来与其他Action组合。它执行一个昂贵的操作(写入数据库),但不会产生注释操作所需的内容。换句话说,我不需要承诺,但我需要一个单独的执行上下文 我可以这样做: public class RecordedAction extends Action<Recorded> { @Override public F.Promise<Result&
public class RecordedAction extends Action<Recorded> {
@Override
public F.Promise<Result> call(Context ctx) throws Throwable {
Promise.promise(() -> {
// do asynchronous stuff
return Promise.pure(null, myExecutionContext);
});
return delegate.call(ctx);
}
}
公共类RecordedAction扩展操作{
@凌驾
公共F.承诺呼叫(上下文ctx)抛出可丢弃{
承诺。承诺(()->{
//做异步的事情
return Promise.pure(null,myExecutionContext);
});
返回委托呼叫(ctx);
}
}
但我只是在利用承诺使用一个单独的ExecutionContext