Skip to main content
Element Software
Uma versão mais recente deste produto está disponível.
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

GetAsyncResult

Colaboradores

Você pode usar GetAsyncResult para recuperar o resultado de chamadas de método assíncronas. Algumas chamadas de método requerem algum tempo para serem executadas e podem não ser concluídas quando o sistema envia a resposta inicial. Para obter o status ou resultado da chamada de método, use GetAsyncResult para pesquisar o valor asyncHandle retornado pelo método.

GetAsyncResult retorna o status geral da operação (em andamento, concluída ou erro) de forma padrão, mas os dados reais retornados para a operação dependem da chamada do método original e os dados de retorno são documentados com cada método.

Se o parâmetro keepResult estiver ausente ou falso, o asyncHandle ficará inativo quando o resultado for retornado, e mais tarde tentará consultar esse asyncHandle retornar um erro. Você pode manter o asyncHandle ativo para consultas futuras definindo o parâmetro keepResult como true.

Parâmetros

Este método tem os seguintes parâmetros de entrada:

Nome Descrição Tipo Valor padrão Obrigatório

AsyncHandle

Um valor que foi retornado da chamada de método assíncrono original.

número inteiro

Nenhum

Sim

KeepResult

Se verdadeiro, GetAsyncResult não remove o resultado assíncrono ao devolvê-lo, habilitando futuras consultas a esse asyncHandle.

booleano

falso

Não

Valores de retorno

Este método tem os seguintes valores de retorno:

Nome Descrição Tipo

estado

Status da chamada de método assíncrono. Valores possíveis:

  • Em execução: O método ainda está em execução.

  • Completo: O método está completo e o resultado ou erro está disponível.

cadeia de carateres

resultado

Se o método assíncrono foi concluído com êxito, este é o resultado da operação assíncrona. Se a operação assíncrona falhou, este membro não está presente.

cadeia de carateres

erro

Se o status estiver concluído e o método assíncrono falhar, esse membro inclui os detalhes do erro. Se a operação assíncrona foi bem-sucedida, este membro não está presente.

cadeia de carateres

Tipo resultado

O tipo de operação que a chamada de método assíncrono está ou estava executando.

cadeia de carateres

detalhes

Se o estado estiver em execução, este membro inclui informações relevantes para o funcionamento atual do método. Se o método assíncrono não estiver em execução, este membro não está presente.

Objeto JSON

CreateTime

O tempo em que o método assíncrono foi chamado, em formato UTC-0.

String de data ISO 8601

LastUpdateTime

A hora em que o status do método assíncrono foi atualizado pela última vez, no formato UTC-0.

String de data ISO 8601

Nota: o valor de retorno de GetAsyncResult é essencialmente uma versão aninhada da resposta JSON padrão com um campo de status adicional.

Exemplo de solicitação

As solicitações para este método são semelhantes ao seguinte exemplo:

{
  "method": "GetAsyncResult",
  "params": {
      "asyncHandle" : 389
},
"id" : 1
}

Exemplo de resposta: Erro de método

Este método retorna uma resposta semelhante ao seguinte exemplo:

{
   "error": {
      "code": 500,
      "message": "DBClient operation requested on a non-existent path at [/asyncresults/1]",
      "name": "xDBNoSuchPath"
   },
   "id": 1
}

Se "response" fosse o objeto de resposta JSON da chamada GetAsyncResult, então "response.error" corresponderia a um erro com o próprio método GetAsyncResult (como consultar um asyncHandle inexistente).

Exemplo de resposta: Erro de tarefa assíncrona

Este método retorna uma resposta semelhante ao seguinte exemplo:

{
   "id": 1,
   "result": {
     "createTime": "2016-01-01T02:05:53Z",
     "error": {
       "bvID": 1,
       "message": "Bulk volume job failed",
       "name": "xBulkVolumeScriptFailure",
       "volumeID": 34
     },
     "lastUpdateTime": "2016-01-21T02:06:56Z",
     "resultType": "BulkVolume",
     "status": "complete"
   }
}

O "response.result.error" corresponde a um erro resultante da chamada de método original.

Exemplo de resposta: Sucesso de tarefas assíncronas

Este método retorna uma resposta semelhante ao seguinte exemplo:

{
   "id": 1,
   "result": {
     "createTime": "2016-01-01T22:29:18Z",
     "lastUpdateTime": "2016-01-01T22:45:51Z",
     "result": {
       "cloneID": 25,
       "message": "Clone complete.",
       "volumeID": 47
     },
     "resultType": "Clone",
     "status": "complete"
   }
}

O "response.result.result" é o valor de retorno para a chamada de método original se a chamada for concluída com êxito.

Novo desde a versão

9,6