jak zwrocic wartosc z promise?

Odpowiedz Nowy wątek
2019-06-12 21:51
0

Witam, mam pytanie z ktorym nie jestem sobie w stanie poradzic. Jak zwrocic wartosc z promise nie przypisujac jej do zmiennej globalnej?

function test(){
    fetch('https://api.exchangeratesapi.io/latest?base=PLN')
    .then(response => {
        return response.json()
    })
    .then(resp => {
        let sprawdzam = resp.rates; 
        return sprawdzam;
    })
}
test();

// ze zmienna globalna, wszystko dziala
let sprawdzam = '';
function test(){
    fetch('https://api.exchangeratesapi.io/latest?base=PLN')
    .then(response => {
        return response.json()
    })
    .then(resp => {
        sprawdzam = resp.rates; 
        console.log(sprawdzam)
        return sprawdzam;
    })
}
test();

Pozostało 580 znaków

2019-06-12 22:16
2
async function test(){
    const response = await fetch('https://api.exchangeratesapi.io/latest?base=PLN');
    const json = await response.json();

    return json.rates;
}

console.log(
  await test()
);

Pozostało 580 znaków

2019-06-12 22:26

Jak zwrocic wartosc z promise nie przypisujac jej do zmiennej globalnej?

po prostu zwracasz obiekt promise.

function test(){
    return fetch('https://api.exchangeratesapi.io/latest?base=PLN') // dodałem słowo return 
    .then(response => {
        return response.json()
    })
    .then(resp => {
        let sprawdzam = resp.rates; 
        return sprawdzam;
    })
}

test().then(v => {
  console.log("promise zwróciła", v);
});

Tak powinno działać.

Możesz też z async/await popróbować, ale async/await i tak się opiera na promisach (pod spodem) więc lepiej, żebyś umiał obsługiwać najpierw czyste promisy, a potem zawsze możesz spróbować async/await.


((0b10*0b11*(0b10**0b101-0b10)**0b10+0b110)**0b10+(100-1)**0b10+0x10-1).toString(0b10**0b101+0b100);

Pozostało 580 znaków

2019-06-12 23:11
0

Dziękuje bardzo za pomoc! :D Temat można zamknąć

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0