0

我认为我的问题有一个直截了当的答案,我似乎无法找到它。

我有一个基本的工作流程:

private void doWorkflow() {
    Promise<Boolean> result = activityClient.checkSomething();

    if (result.get() == true) {
        //exit
    }

    activityClient.doSomething();
}

第一个问题是我似乎无法在工作流程中得到结果。我必须使用@asynchronous 方法来获得结果。其次,如果我要使用@asynchronous 方法来确定我是否应该提前退出,那么我将回到原点,因为@asynchronous 方法需要返回一个promise。

提前致谢

4

1 回答 1

0

我会将您的代码重写为:

private void doWorkflow() {
    Promise<Boolean> result = activityClient.checkSomething();
    doSomething(result);
}

@Asynchronous
private void doSomething(Promise<Boolean> flag) {
   if (!flag.get()) {
     activityClient.doSomething();
   }
}

如果不想使用@Asynchronous 方法,可以直接使用Task

private void doWorkflow() {
    final Promise<Boolean> result = activityClient.checkSomething();
    new Task(result) {
        public void do Execute() {
           if (!result.get()) {
               activityClient.doSomething();
           }
        }
    };
}
于 2014-07-28T18:21:03.000 回答