Grails 承诺回调未调用

Grails promise callback not called

我无法执行应使用 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
}

用例是我想在一个单独的线程中启动一个长运行进程。调用线程应该 return,而不是等待线程完成。当 long-运行 过程完成时,我希望它执行回调。这可能吗?或者应该像下面的代码?

def initiateDbLoad() {
    def p1 = task {
        dbLoad()
        dbLoadCallback()
    }
}

onComplete 仅在成功时调用。您还必须添加 onError 才能获得实际错误。