Concorrência (Código Limpo: Que Bruxaria é Essa?!?! - Parte 8)
ananopaisdojavascript
Posted on September 29, 2021
Use Promessas, nada de "callbacks"
"Callbacks" não são limpos e causam quantidades excessivas de encadeamento. Com o ES2015/ES6, as promessas são um tipo global embutido. Use-as!
Não é recomendável:
import { get } from "request";
import { writeFile } from "fs";
get(
"https://en.wikipedia.org/wiki/Robert_Cecil_Martin",
(requestErr, response, body) => {
if (requestErr) {
console.error(requestErr);
} else {
writeFile("article.html", body, writeErr => {
if (writeErr) {
console.error(writeErr);
} else {
console.log("File written");
}
});
}
}
);
É recomendável:
import { get } from "request-promise";
import { writeFile } from "fs-extra";
get("https://en.wikipedia.org/wiki/Robert_Cecil_Martin")
.then(body => {
return writeFile("article.html", body);
})
.then(() => {
console.log("File written");
})
.catch(err => {
console.error(err);
});
"Async/Await" são ainda mais limpos do que as Promessas
Promessas são uma alternativa bem limpa aos "callbacks", mas ES2015/ES6 nos traz o "async" e o "await", que oferecem uma solução ainda mais limpa. Tudo que você precisa está prefixado na palavra-chave "async" e então você escreve sua lógica de modo imperativo sem uma cadeia de funções "then". Use-os se quiser experimentar as vantagens das funcionalidades do ES2015/ES6 hoje!
Não é recomendável:
import { get } from "request-promise";
import { writeFile } from "fs-extra";
get("https://en.wikipedia.org/wiki/Robert_Cecil_Martin")
.then(body => {
return writeFile("article.html", body);
})
.then(() => {
console.log("File written");
})
.catch(err => {
console.error(err);
});
É recomendável:
import { get } from "request-promise";
import { writeFile } from "fs-extra";
async function getCleanCodeArticle() {
try {
const body = await get(
"https://en.wikipedia.org/wiki/Robert_Cecil_Martin"
);
await writeFile("article.html", body);
console.log("File written");
} catch (err) {
console.error(err);
}
}
getCleanCodeArticle()
E aí? Gostaram? Até a próxima tradução! 🤗
💖 💪 🙅 🚩
ananopaisdojavascript
Posted on September 29, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
cleancode Avoiding Frontend Development Failure: Proven Practices for Writing Clean Code
October 1, 2024