JavaScript සංවර්ධකයින්ට “Promise” භාවිතා කරන විට, බොහෝ වෙලාවක “resolve” සහ “reject” ක්රියාකාරකම් ක්රමයක් පිටතින් ඇමතීමට අවශ්ය වේ. ඒ සඳහා සාමාන්යයෙන් Promise කන්ස්ට්රක්ටරය තුළින් ඒ functions ගලවා, බාහිර scope එකකට leak කරලා භාවිතා කරයි. මේ ක්රමය වැඩ කරුණත්, ලේඛනයේ දෝෂයක් වගේ පෙනේ.
ES2024 නවතම ප්රතිපාදනය “Promise.withResolvers” නමින් හඳුන්වා දී ඇත. මෙම ස්ථිර ක්රමය කෙලින්ම promise, resolve සහ reject තුනම එකවර ලබා දෙන අතර, ඒවා බාහිර scope එකේම පවතින බැවින් කිසිදු closure එකක් “escape” කරන්නේ නැත. භාවිතය ඉතා සරලය:
const { promise, resolve, reject } = Promise.withResolvers();
ඉන්පසු event listener, async queue, message handler වැනි අවස්ථා වලදී resolve() හෝ reject() ඇමතීමට පමණක් ප්රමාණවත් වේ. මූලික four‑line pattern එක දැන් එක line එකකට කුඩා කර ගත හැක. කාර්ය සාධනය, micro‑task timing, error propagation වැනි සියලුම ගුණාංග අඩංගු වේ; වෙනස නම් අදහස් පැහැදිළි කිරීමයි – “deferred Promise” එකක් නිර්මාණය කරනවා කියලා.
උදාහරණයක් ලෙස socket එකේ “open” සහ “error” events පරිවර්තනය කිරීමේදී, පරණ කේතයෙහි resolve/reject variables leak කිරීමේ boilerplate එකක් තිබුණා. Promise.withResolvers භාවිතා කිරීමෙන් එය සරල කර, code readability වැඩි කරයි.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයින්, විශ්වවිද්යාල සිසුන්, සහ තාක්ෂණික ව්යාපාරිකයින්ට මෙම නවතම JavaScript විශේෂාංගය විශාල ප්රයෝජන දෙයි:
- කේත ලේඝනය – boilerplate අඩු කිරීමෙන් වැඩි productivity.
- ඉගෙනීමේ වාසිය – async patterns පැහැදිළිව දැක්වීමෙන් concepts හොඳින් අවබෝධ කරගැනීමට හැකියාව.
- ව්යාපාරික ව්යුහය – event‑driven APIs, async queues, batch processing වැනි real‑time applications ඉතා කාර්යක්ෂමව නිර්මාණය කළ හැක.
- සංවර්ධන වේගය – කේතයෙහි වැරදි අවස්ථා අඩු වී, debugging කාලය කෙටි වේ.
ඒ නිසා, ලංකාවේ startups හා IT සේවා සපයන්නන්ට performance‑optimized, maintainable codebases සකස් කිරීමේ හැකියාව වැඩි වේ. තවත්, ප්රාදේශීය පාඨමාලා හා workshop වලට නවතම ES2024 features එකතු කිරීමෙන්, ගෝලීය තරඟකාරීත්වය වැඩි කරයි.
සාරාංශය ලෙස, Promise.withResolvers JavaScript ලෝකයට “clean” හා “intent‑driven” deferred Promise ක්රමයක් ගෙන එයි. ඔබේ ව්යාපෘතියේ එය ඇතුළත් කර, කේතය සරල, ආරක්ෂිත, සහ ඉක්මනින් වැඩ කරන බව අත්විඳින්න.