2015-01-27 1 views
1

Grails 비동기 프로그래밍을 사용하고 있습니다. 약속에서 결과 반환을 블록으로 처리하고이를 처리해야합니다. 하지만 어떻게해야할지 모르겠다.Grails 비동기 프로그래밍, 어떻게 블록에서 약속 값 반환을 전달하려면?

샘플의 경우 : 위의에서

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

, 나는 "다음"블록의 약속에서 "promiseResult"복귀에 대한 몇 가지 프로세스를 수행합니다.

답변

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

Promise.thenonComplete(Closure callable) 유사한 파라미터로 폐쇄 걸린다. 이전 약속의 결과를 클로저에 대한 매개 변수로 전달하면 결과에 액세스 할 수 있어야합니다.

동일 내용은 onError()에 해당됩니다.