Middle
Ko jūs izmantojāt pirms Promise parādīšanās?
sobes.tech AI
Atbilde no AI
Pirms Promise plaši izmantoja atzvanus (callbacks).
Atzvanus būtība:
Funkcija tiek nodota citai funkcijai kā arguments un tiek izpildīta pēc noteiktas operācijas pabeigšanas.
Piemērs:
// Asinhronas operācijas izsaukuma piemērs ar atzvanus
function fetchData(callback) {
setTimeout(() => {
const data = "Some data";
callback(null, data); // Pirmais arguments - kļūda, otrais - rezultāts
}, 1000);
}
fetchData((err, data) => {
if (err) {
console.error("Kļūda, iegūstot datus:", err);
} else {
console.log("Dati saņemti:", data);
}
});
Atzvanus izmantošanas trūkumi:
- Callback Hell (Atzvanus elle): Iekšējo asinhrono operāciju rinda noved pie dziļa un grūti lasāma koda.
- Kļūdu apstrādes grūtības: Nepieciešams pārsūtīt un pārbaudīt kļūdas katrā līmenī.
- Standartizētas pieejas trūkums: Dažādas bibliotēkas varēja izmantot dažādus vienošanās par atzvanus.
Alternatīvas pirms Promise:
Pirms Promise parādīšanās, papildus "tīriem" atzvanus, tika izmantotas bibliotēkas un modeļi asinhronās darbības pārvaldībai, piemēram:
- Asinhronās bibliotēkas: Piemēram,
async(Node.js, bet varēja tikt izmantots arī pārlūkā). Nodrošināja rīkus asinhrono plūsmu pārvaldībai ( paralēla izpilde, secīga izpilde). - Publisher/Subscriber (Pub/Sub) modelis: Sarežģītākiem sadarbības scenārijiem.
- Notikumu emitenti: Node.js un pārlūkprogrammas vidē (piemēram,
EventEmitter).
Tomēr, atzvanus palika daudzu asinhrono operāciju pamats. Promise nodrošināja strukturētāku, vienotu un lasāmu veidu darbam ar asinhronumu, novēršot daudzas "Callback Hell" problēmas.