Как дождаться завершения методов ComputerVision getReadResult или getReadResultAsync?

#java #azure #rx-java

Вопрос:

Как я могу дождаться завершения наблюдаемого, которое возвращает метод getReadResultAsync? Или убедитесь, что getReadResult() возвращает полный результат без проверки состояния в цикле while.

Пакет: com.microsoft.azure.cognitiveservices.vision.computervision.ComputerVision;

readResults = computerVission.getReadResult(operationId);

Во время проверки цикла:

quate

 ReadOperationResult readResults = null;
boolean pollForResult = true;
while (pollForResult) {
            readResults = computerVission.getReadResult(operationId);

            if (readResults != null) {

                OperationStatusCodes status = readResults.status();

                if (status == OperationStatusCodes.FAILED || status == OperationStatusCodes.SUCCEEDED) {
                    pollForResult = false;
                }
            }
}
 

Ответ №1:

Чтобы убедиться, что getReadResult() возвращает полный результат без проверки состояния в цикле while. Вы можете попробовать с помощью приведенного ниже кода:

 ReadOperationResult readResults = null;
boolean pollForResult = true;

if(readResults != null){
return readResults;
}
else{
 OperationStatusCodes status = readResults.status();
 
if (status == OperationStatusCodes.FAILED|| status == OperationStatusCodes.SUCCEEDED) {
                pollForResult = false;
            }}