Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Uso de promisses

Eu gostaria de entender melhor o que são promisses e quando usá-las, para mim ainda não ficou tão claro.

2 respostas
solução!

Oi Luis,

Voce pode usar Promises quando se tem um código assincrono, e vc quer q ele execute numa determinada ordem.

Imagine que vc está esperando a resposta de um Ajax, ou um script ser carregado, ou um arquivo ser lido, ou um settimeout. Sao funcoes que nao sao executadas no tempo normal da execucao do código.

As promises vieram para resolver esse problema. Antigamente a gente usava com callbacks para ordenar a execução, mas isso causava o famoso callback hell

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

É horrível de ler o código acima, não é?

agora, com promises vc pode simplismente ordernar usando a Promises que fica bem mais fácil.

// cria uma funcao que retorna uma promise
let myPromise = new Promise(function(resolve, reject) {
    let req = new XMLHttpRequest();
    req.open('GET', "mycar.htm");
    req.onload = function() {
        if (req.status == 200) {
            // se der tudo certo executa o resolve
            resolve(req.response);
        } else {
            // se der errado joga um erro 
            reject("File not Found");
        }
    };
    req.send();
});

myPromise
.then(function(value) {
        return funcaoQueVcQuerExecutar(value);
}).then(function(param) {
        // o argumento param é o retorno do then anterior
        console.log("aqui executa mais uma funcao")
}).error(function(err){
    // se der erro, loga 
    console.warn(err)
})

https://www.w3schools.com/js/js_promise.asp

A sim, agora entendi melhor, muito obrigado.