JavaScript හි callback භාවිතයෙන් asynchronous කේතය
අපට යම් asynchronous ශ්රිතයක් ඇතැයි සිතමු:
function make() {
setTimeout(function() {
console.log('1');
}, 3000);
}
අපි මෙම ශ්රිතය පහත පරිදි භාවිතා කරමු යැයි සිතමු:
make();
console.log('2'); // පළමුව ක්රියාත්මක වේ
ශ්රිතය තුළ ඇති asynchronous මෙහෙයුම
ක්රියාත්මක වූ පසු, දෙවන console.log
මෙහෙයුම ක්රියාත්මක වීමට අපට අවශ්ය යැයි
සිතමු.
මේ සඳහා භාවිතා කරන ප්රවේශයන්ගෙන් එකක් වන්නේ
callback
භාවිතයයි:
බලාපොරොත්තුවෙන් ඇති කේතය නිර්නාමික ශ්රිතයකින්
ආවරණය කර make ශ්රිතයට පරාමිතියක් ලෙස යවන්න:
make(function() {
console.log('2');
});
ඇත්ත වශයෙන්ම, මෙය අපගේ කාර්යය
සඳහා විසඳුමක් නොවේ. අපි දැනට කර ඇත්තේ
පහත ගිවිසුම ඇති කර ගැනීම පමණි: make
ක්රියාත්මක වූ පසු කේතය ක්රියාත්මක කිරීමට අවශ්ය නම්,
එම කේතය callback ලෙස make හට යවන්න.
අපගේ ගිවිසුම අනුව ක්රියා කිරීමට
make ශ්රිතයේ කේතය නිවැරදි කරමු:
function make(callback) {
setTimeout(function() {
console.log('1'); // යම් asynchronous මෙහෙයුමක්, එකකට වඩා විය හැක
callback(); // ඉන් පසු අපගේ callback
}, 3000);
}
කුමන අනුපිළිවෙලෙන් සංඛ්යා console හි පෙන්වේදැයි පැහැදිලි කරන්න:
function make(callback) {
setTimeout(function() {
console.log('1');
callback();
}, 3000);
}
make(function() {
console.log('2');
console.log('3');
});