jak zwrocic wartosc z promise?

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();

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()
);
1

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.

0

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

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