Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 4 Próxima »

O bloco Monitorar uma promessa fica aguardando (de forma assíncrona) algum processamento, normalmente demorado, e retorna o valor da promessa resolvida no parâmetro Sucesso ou rejeitada, no parâmetro Erro.

Após criar a promessa com o bloco Criar Promessa, o fluxo irá ocorrer e ao final, o bloco Atribuir valor para a promessa deve ser utilizado para informar ao bloco Monitorar uma promessa se foi resolvida ou rejeitada.


Figura 1 - Bloco Monitorar uma promessa


Compatibilidade

  • Bloco cliente: cronapi.util.monitorPromise()

Retorno

Retorna o objeto da promessa na variável definida no retorno dos parâmetros de entradas de comando Sucesso, caso a promessa seja resolvida, e Erro, caso a promessa seja rejeitada. 

Parâmetros

Promessa

Executa uma ação caso a promessa seja resolvida.

  • Posição: 1
  • Inglês: Promise
  • Tipo: objeto promessa, criado a partir do bloco Criar Promessa.
  • Exemplo: informar o usuário que o processo foi finalizado com sucesso.

Sucesso

Executa uma ação caso a promessa seja resolvida.

  • Posição: 2
  • Inglês: Success
  • Tipo: comando com retorno ("item") / Command with return ("item")
  • Exemplo: informar o usuário que o processo foi finalizado com sucesso.

Erro

Executa uma ação caso a promessa seja rejeitada.

  • Posição: 3
  • Inglês: Error
  • Tipo: comando com retorno ("item") / Command with return ("item")
  • Exemplo: Informar o usuário que o processo foi finalizado com sucesso.

Exemplo 1

Na função da figura abaixo estamos criando e monitorando uma promessa até que uma requisição REST seja concluída. Caso a requisição REST (destaque 3 da figura 2) retorne os dados corretamente (status 200), a promessa será definida como "Resolvida", caso não retorne (status 404 ou 500), a promessa será definida como "Rejeitada".

Nesse exemplo, a requisição apenas retornará o texto "Retornei da requisição.". Incluímos alguns blocos de imprime para descrever melhor o fluxo.


Figura 2 - Utilizando o bloco Monitorar uma promessa para aguardar o retorno de uma requisição REST


  1. A variável "promessa" é criada com o objeto da promessa. Nesse memento o objeto da promessa está com o status definido como "pending" (pendente).
  2. O bloco Monitorar uma Promessa ficará "ouvindo" a promessa criada até que a promessa mude seu status de "pendente" para "resolve" ou "reject". O conteúdo da entrada de comando Sucesso será executado quando o status da promessa mudar para "resolve", caso mude para "reject", será executado a entrada de comando Erro
    A variável "item" do retorno das entradas de comandos Sucesso e Erro será alimentada pelo conteúdo informado no parâmetro Valor do bloco Atribuir valor para a promessa (passo 3).
  3. É feito uma requisição REST e executará a entrada de comando com base no sucesso ou erro dessa requisição.
    1. Sucesso: imprime um texto informando o sucesso da requisição e o conteúdo obtido, em seguida, o bloco Atribuir valor para a promessa muda o status da promessa para "resolve" e informa o Valor da promessa com o retorno da requisição REST. 
    2. Erro: imprime um texto informando o erro da requisição e o que retornou, em seguida, o bloco Atribuir valor para a promessa muda o status da promessa para "reject" e informa o Valor da promessa com o retorno da requisição REST.
  4. O bloco Imprime é utilizado apenas para informar que está fora do fluxo da promessa e, por se tratar de uma execução assíncrona, será executado primeiro.


Se tivermos sucesso na requisição do bloco Obter conteúdo da URL (destaque 2 da figura 2), o console do navegador exibirá o conteúdo da figura 2.1.


Figura 2.1 - Sucesso na requisição da função da figura 2


Se não tivermos sucesso na requisição do bloco Obter conteúdo da URL (destaque 2 da figura 2), o console do navegador exibirá o conteúdo da figura 2.2.


Figura 2.2 - Erro na requisição da função da figura 2

Exemplo 2


Figura 2 - Utilizando o bloco Monitorar uma promessa para aguardar chamada de função


Figura 2.1 - Atribuindo status da promessa em outra função



Figura 2.2 - Resultado ao executar função MonitorarPromessa


Figura 2.3 - Removendo o comando await na chamada da função Processamento


Figura 2.4 - Resultado ao executar função MonitorarPromessa sem o comando await na chamada da função Processamento

Nesta página

  • Sem rótulos