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

Promise(resolve,reject) Por que essa função tem que receber duas variaveis? E de onde elas vem?

Na aula foi passado a sintaxe do Promise

const promise = new Promise((resolve, reject) => {
    //codigo que espera a resposta 
    //resolve(resposta)
    //reject(erro)
})

Primeiro: resolve e reject são variáveis da função que passei na construção do Promise correto?

Segundo: Se são variáveis, quem passa essas variáveis?

Terceiro: Qual é o tipo dessas variáveis? Objetos? Funções? Só se for para ser possível usa-la como função dentro do código

Quarto: Como pode as próprias variáveis que foram DECLARADAS serem responsáveis por RETORNAR o resultado da função? Não tem nenhum return na função???

Isso me deixou muito confuso

2 respostas

Fala Nicola, tudo bem? Espero que sim!

Vamos lá,

1 - resolve e reject são parâmetros que iremos receber de quem for resolver essa promise que criamos (através do then e catch). Sendo resolve uma função que será executada caso a promise for resolvida com sucesso, e reject uma função a ser executada caso ocorra algum erro na promise, veja:

const promise = new Promise((resolve, reject) => {
    if(5 === 5) {
        resolve("É igual a 5 :D")
    } else {
        reject("Não é igual a 5 :(")
    }
})

Na promise criada logo acima, verificamos se 5 é igual a 5, caso for, irá resolver a promise e passar como parâmetro para a função resolve o texto "É igual a 5 :D" e caso não for, irá rejeitar a promise e passar como parâmetro para a função reject um erro contendo o texto "Não é igual a 5 :(", veja:

promise.then((response) => {
    console.log(response) // "É igual a 5 :D"
}).catch((error) => {
    console.log(error) //  "Não é igual a 5 :("
})

No exemplo acima, percebebesse que passamos como parâmetro para o then uma função, que é justamente a função que será executada caso a promise for resolvida com sucesso (seria aquele resolve que recebemos no momento da criação da promise). E passamos como parâmetro para o catch uma função a ser executada caso a promise falhar. E essas funções irão receber os seus devidos parâmetros.

2 - São parâmetros, e esses parâmetros são passados pelo then e catch.

3 - Funções.

4 - Como pode ver no tópico 1, esse retorno de valores são feitos através de parâmetros, onde executamos as funções de acordo se a promise for executada com sucesso ou não.

Você pode também dar uma olhada na documentação da Promise.

Caso continue confuso, pode falar ai pra gente, ta bom?

Abraços e bons estudos :D

solução!

Em resumo: Promise tem uma sintaxe completamente diferente de qualquer outra Classe/Objeto/Função, já que não usa retorna nada mas acaba retornando através de uma função que recebeu como parâmetro. Confuso, mas tudo bem