2014-09-30 2 views
3

PromiseList에 약속 목록이있는 Grails가 있습니다. 타임 아웃 값으로 값을 요청한 경우 제한 시간이 약속 목록을 중지 한 경우 시간 초과되지 않은 미래의 결과가 계속 표시됩니까?시간이 초과되면 PromiseList의 결과를 얻는 방법이 있습니까

+0

짧은 대답은 아니오입니다. 타임 아웃으로 인해 예외가 발생하고 onComplete가 약속 목록에 호출되지 않으므로 결과를 얻지 못합니다. –

+0

대담한 점을 알고 있습니까? 그렇다면 대답으로 제출하십시오. – monksy

답변

1

불행히도 짧은 대답은 "아니요, 약속 목록에있는 약속 중 일부가 성공하고 하나 이상이 실패하면 부분적인 결과를 얻을 수있는 방법이 없습니다"입니다. 이는 약속 목록이 전체 단위로 성공하거나 실패한 것으로 간주되기 때문입니다. 시간 초과가 포함 된 예외가 발생하면 대신 onError이 호출됩니다.

유일한 대안은 다른 약속에 의존하지 않는 개별 결과가 필요한 경우 목록 대신 개인 약속을 사용하는 것입니다.

+0

전체 그룹에 대해 최대 대기 시간을 얻을 수있는 방법이 있습니까? 나는 모두가 말한 약속의 목록처럼 보입니다 .get (30 Minutes) 5 회를하면 5 * 30 Minutes upper bounds가됩니다. – monksy

+0

아니요, 각각 최대 30 분이 걸릴 것이고 실제로는 최소한에 대해 가장 염려해야합니다. 예 : 30, 30, 20은 20을 초과하면 예외가 발생합니다. 동기화 약속이 아닌 비동기식 약속을 사용하고 있다고 가정합니다 (예 : onComplete/onError 대 waitAll). 맞습니까? –

+0

비동기 약속 예를 사용합니다. – monksy

관련 문제