jak zwrocic wartosc z promise?

jak zwrocic wartosc z promise?
K0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

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

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

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
2
Kopiuj
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()
);
LukeJL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8487
1

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

po prostu zwracasz obiekt promise.

Kopiuj
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.

K0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.