Grails异步编程,如何在promise块中传递值从promise返回?

时间:2015-01-27 18:25:56

标签: grails asynchronous

我正在使用grails异步编程。我需要将结果从promise返回到then块并对此进行处理。但我不知道该怎么做。

示例案例:

Promise promise = task {
    // long running task
    return promiseResult
}
promise.then {
    // want to process promiseResult here
}

在上面,我想对“promiseResult”在“then”块中的promise中返回执行一些过程。

1 个答案:

答案 0 :(得分:1)

Promise promise = task {
     return promiseResult
}
promise.then { prevPromiseResult ->
    // Access prevPromiseResult which is the result of the previous promise
}

Promise.then将闭包作为参数,类似于onComplete(Closure callable)。将前一个promise的结果作为参数传递给闭包应该可以访问结果。

同样适用于onError()