我无法执行应通过Promise onComplete()调用的回调。
// some service
def initiateDbLoad() {
def p1 = task { dbLoad() }
p1.onComplete { result ->
dbLoadCallback()
}
}
def dbLoad() {
// some long-running process here
}
def dbLoadCallback() {
// I am never called
}
用例是我想在一个单独的线程中启动一个长时间运行的进程。调用线程应该返回,而不是等待线程完成。长时间运行的过程完成后,我希望它执行回调。这可能吗?还是应该看起来像下面的代码?
def initiateDbLoad() {
def p1 = task {
dbLoad()
dbLoadCallback()
}
}
最佳答案
onComplete
仅在成功时调用。您还必须添加onError
才能获取实际错误。
关于multithreading - Grails promise 未调用回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28251117/