Junior — Middle
Կարող եք պատմել մի դեպքի մասին, երբ ձեր աշխատանքում օգտագործել եք գեներատոր?
sobes.tech AI
Պատասխան AI-ից
Node.js-ում ես օգտագործել generator-ներ՝ որպես ասինխրոնային կոդի կառավարում՝ նախքան async/await-ի հայտնվելը: Generator-ները թույլ են տալիս դադարեցնել ֆունկցիայի կատարմանը և հետագայում շարունակել, ինչը հարմար է ասինխրոնային գործողությունները հերթականությամբ կատարելու համար:
Օրինակ, generator-ով կարելի է գրել կոդ, որը կարդում է ֆայլը, ապա մշակում տվյալները՝ առանց «callback-ների դժոխքի» մեջ ընկնելու:
const fs = require('fs');
function* readFileGenerator() {
const data = yield fs.promises.readFile('file.txt', 'utf8');
console.log('Ֆայլի պարունակությունը:', data);
}
const gen = readFileGenerator();
const promise = gen.next().value;
promise.then(data => gen.next(data));
Չնայած այժմ ավելի հաճախ օգտագործվում է async/await-ը, generator-ների հասկանալը օգնում է ավելի լավ հասկանալ ասինխրոնության մեխանիզմները։