JavaScript හි ප්‍රතිඥා අරා සමඟ වැඩ කිරීම

දැන් අපි ප්‍රතිඥා අරා සමඟ වැඩ කිරීමට ඉඩ සලසන ප්‍රයෝජනවත් ක්‍රම දෙකක් විශ්ලේෂණය කරමු. Promise.all ක්‍රමය එයට අරාවක් ලෙස ලබා දුන් සියලුම ප්‍රතිඥා අවසන් වූ පසු කේතය ක්‍රියාත්මක කිරීමට ඉඩ සලසයි, Promise.race ක්‍රමය අරාවෙන් පළමු ප්‍රතිඥාව ලබා ගැනීමට බලා සිටී, ඉතිරිය ඉවත දමයි.

ක්‍රම දෙකම ඒවායේ ප්‍රතිපලයක් ලෙස නව ප්‍රතිඥාවක් ආපසු ලබා දෙයි. Promise.all ක්‍රමය සඳහා මෙම ප්‍රතිඥාවේ ප්‍රතිපලය වනුයේ සියලුම ලබා දුන් ප්‍රතිඥාවල ප්‍රතිඵල වල අරාවක් වනු ඇත (ප්‍රතිඵල වල අනුපිළිවෙල අරාවේ ප්‍රතිඥා වල අනුපිළිවෙලට අනුරූප වේ), Promise.race සඳහා - පළමුව ක්‍රියාත්මක වූ ප්‍රතිඥාවේ ප්‍රතිපලය වනු ඇත.

අපි ප්‍රායෝගිකව බලමු. අපට ප්‍රතිඥා අරාවක් ඇතැයි සිතමු:

javascriptlet promises = [
  new Promise(resolve => setTimeout(() => resolve(1), 1000)),
  new Promise(resolve => setTimeout(() => resolve(2), 2000)),
  new Promise(resolve => setTimeout(() => resolve(3), 3000)),
];

අපි Promise.all භාවිතයෙන් අපගේ අරාවෙන් සියලුම ප්‍රතිඥා ලබා ගැනීම අවසන් වීම බලා සිටිමු:

javascriptPromise.all(promises).then(function(res) {
  console.log(res); // [1, 2, 3] - සියලුම ප්‍රතිඥා වල ප්‍රතිඵල පෙන්වයි
});

දැන් අපි Promise.race භාවිතයෙන් ප්‍රතිඥා වලින් පළමු එක ලබා ගැනීම අවසන් වීම බලා සිටිමු:

javascriptPromise.race(promises).then(function(res) {
  console.log(res); // 1 - පළමුව ක්‍රියාත්මක වූ ප්‍රතිඥාවේ ප්‍රතිපලය පෙන්වයි
});

අරාවේ ඇති ප්‍රතිඥා වලින් එකක් හෝ ප්‍රතික්ෂේප කළහොත්, ප්‍රතිඵල සහිත ප්‍රතිඥාව වහාම rejected තත්වයට ගමන් කරයි. එබැවින් සිදු වූ ව්‍යතිරේකය සාමාන්‍ය, ඔබ දැනටමත් අධ්‍යයනය කර ඇති ක්‍රමයක් භාවිතයෙන් අල්ලා ගත හැකිය, උදාහරණයක් ලෙස, catch හරහා:

javascriptPromise.all(promises).then(function(res) {
  console.log(res);
}).catch(function(err) {
  console.log(err);
});
Задание 1

ප්‍රතිඥාවක් ආපසු ලබා දෙන ශ්‍රිතයක් සාදන්න, එහි ඇතුළත 1 සිට 10 තත්පර දක්වා අහඹු ප්‍රමාදයක් සකසා ඇත. ප්‍රතිඥාව තම ප්‍රතිපලය ලෙස මෙම ප්‍රමාදය ආපසු ලබා දෙයි. ලූපය සහ ඔබගේ ශ්‍රිතය භාවිතයෙන් අරාව 10 ප්‍රතිඥා වලින් පුරවන්න.

Задание 2

පෙර කාර්යයෙන් ප්‍රතිඥා අරාව භාවිතයෙන් පළමුව ක්‍රියාත්මක වූ ප්‍රතිඥාවේ ප්‍රතිපලය කන්සෝලයේ පෙන්වීමට සලස්වන්න.

Задание 3

පෙර කාර්යයෙන් ප්‍රතිඥා අරාව භාවිතයෙන් සියලුම ප්‍රතිඥා වල ප්‍රතිඵල වල එකතුව කන්සෝලයේ පෙන්වීමට සලස්වන්න.