TGViewer
Asynchronous Programming Asynchronous Programming @asyncify · 1.97K subscribers
Post #58 3.66K
В курсе по асинхронности начинаются более сложные задания. Например: нужно декомпозировать код согласно принципам SOLID, а имеено Single-Responsibility Principle (SRP) чтобы код не потерял работоспособности, но стал более понятным, каждая функция имела только одну ответственность, и его читаемость и возможность исправления существенно улучшилась:

'use strict';

const API_EXCHANGE = {
host: 'openexchangerates.org',
path: 'api/latest.json?app_id=',
key: '1f43ea96b1e343fe94333dd2b97a109d',
};

const DEFAULT_RETRY = 3;

const getRate = async (currency, retry = DEFAULT_RETRY) => {
console.log({ currency, retry });
const { host, path, key } = API_EXCHANGE;
const url = `https://${host}/${path}${key}`;
const res = await fetch(url).catch(() => ({ ok: false }));
if (!res.ok) {
const attemptsLeft = retry - 1;
if (attemptsLeft > 0) return getRate(currency, retry - 1);
throw new Error('Can not get data');
}
const data = await res.json();
const rate = data.rates[currency];
return rate;
};

const main = async () => {
try {
const rate = await getRate('UAH');
console.log({ rate });
} catch (err) {
console.error({ err });
}
};

main();
  • 🔥 17
  • 👍 10
  • ❤ 3
More from @asyncify
  1. Oct 3, 2026https://youtu.be/I5ILntVSjkQ
  2. Sep 28, 2026https://youtu.be/0GZ-Nf8yHEw
  3. Sep 26, 2026https://youtu.be/hKigdmvste0
  4. Sep 25, 2026В эту субботу будет стрим по применению AI в создании архитектуры. - архитектурный дрейф и…
  5. Sep 23, 2026https://www.youtube.com/watch?v=Bca7s7Yvhzk
  6. Sep 21, 2026https://youtu.be/el7RuL98KL8
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →