Show / Hide Table of Contents
Editar no GitHub

Chamadas assíncronas

Vejamos novamente nosso exemplo para obter os certificados disponíveis:

pki.listCertificates().success(function (certs) {
    // fazer alguma coisa com o array "certs"
});

O código acima é um exemplo de uma chamada assíncrona. O método listCertificates() não pode fazer imediatamente todo o procedimento necessário e retornar o resultado. Ele precisa de tempo para realizar essa operação. Nós poderíamos bloquear a execução até que a operação fosse concluída, mas isso é uma má-pratica em javascript e poderia causar sérios problemas, como a página web travar e o browser sugerir ao usuário que a página deveria ser fechada. Ao invés disso, o método imediatamente retorna uma promessa (uma instância da classe Promise.

Uma promessa é um objeto através do qual você pode registrar callbacks que serão chamados quando a promessa for cumprida, isso é, quando a operação for concluída. Você deve sempre registrar um callback para quando a operação for concluída com sucesso e, opcionalmente, pode registrar um outro callback para quando ocorrer um erro durante a operação. Todos os métodos da classe Promise são encadeáveis, ou seja, você pode fazer o seguinte:

pki.listCertificates().success(function (certs) {
    // do something with the "certs" array
}).fail(function (ex) {
    alert('An error has occurred while retrieving the certificates: ' + ex.userMessage);
});

O callback de sucesso sempre recebe um único argumento contendo o resultado da operação. Entretanto, o tipo (string, array ou objeto) e seu significado dependem do método que retornou a promessa. Você deve verificar a documentação de cada método para obter essas informações.

Para mais informações sobre os parâmetros do objeto da exceção, veja a documentação do método Promise.fail() e ExceptionModel.

Note

Todos os métodos da classe LacunaWebPKI são assíncronos, com raras exceções.

Back to top Copyright © 2015-2020 Lacuna Software