WebAssembly JavaScript Promise इंटिग्रेशन (JSPI) में ऑरिजिन ट्रायल की शुरुआत की गई

JavaScript Promise इंटिग्रेशन (JSPI) एक ऐसा एपीआई है जो WebAssembly के लिए कंपाइल किए गए सिंक्रोनस सीक्वेंशियल कोड को एसिंक्रोनस वेब एपीआई को ऐक्सेस करने की अनुमति देता है. कई वेब एपीआई, JavaScript के हिसाब से बनाए गए हैं प्रॉमिस: अनुरोध की गई कार्रवाई को तुरंत पूरा करने के बजाय, वे ऐसा करने का प्रॉमिस देते हैं. जब ऐक्शन पूरा हो जाता है, तो ब्राउज़र का टास्क रनर, किसी भी कॉलबैक को प्रॉमिस के साथ शुरू करता है. जेएसपीआई इस आर्किटेक्चर को जोड़ता है, ताकि प्रॉमिस वापस मिलने पर WebAssembly ऐप्लिकेशन को निलंबित किया जा सके. साथ ही, प्रॉमिस रिज़ॉल्व होने पर इसे फिर से शुरू किया जा सके.

Chrome 123 से Chrome 128 तक, JSPI ऑरिजिन ट्रायल के तौर पर उपलब्ध है. ब्लॉग पोस्ट में जेएसपीआई के बारे में ज़्यादा जानें. WebAssembly JavaScript Promise integration API या खास जानकारी वाले ड्राफ़्ट से इसकी जानकारी दी जा सकती है.

इस सुविधा को इस्तेमाल करने के तरीके के बारे में बेहतर जानकारी पाने के लिए, C प्रोग्राम के उस हिस्से को देखें जो Fibonacci सीक्वेंस का हिसाब लगाता है. इसके लिए, JavaScript फ़ंक्शन को जोड़ना होता है.

// This is C code.
long promiseFib(long x) {
  if (x == 0)
    return 0;
  if (x == 1)
    return 1;
  // This is where the C code calls asynchronous JavaScript.
  return promiseAdd(promiseFib(x - 1), promiseFib(x - 2));
}

// Addition artificially wrapped in a Promise.
EM_ASYNC_JS(long, promiseAdd, (long x, long y), {
  // This is asynchronous JavaScript code.
  return Promise.resolve(x+y);
});

इस C प्रोग्राम को WebAssembly में कंपाइल करने के लिए, नीचे दिए गए कमांड का इस्तेमाल करें. इसके लिए, Emscripten SDK टूल होना ज़रूरी है.

emcc -O3 badfib.c -o index.html -s ASYNCIFY=2

JavaScript से CSSI सहायता का पता इस तरह लगाया जा सकता है:

if ('Suspender' in WebAssembly) {
  // JSPI is supported.
}

पिछले कोड सैंपल से जेएसपीआई का डेमो Glitch पर उपलब्ध है और नीचे दिए गए उदाहरणों में भी एम्बेड किया गया है. अगर आप चाहें, तो Emscripten से जनरेट किया गया सोर्स कोड देखा जा सकता है. हालांकि, ओरिजनल C प्रोग्राम ही, सबसे दिलचस्प कोड है. इस लिंक पर क्लिक करने से कोड डाउनलोड हो जाएगा.

अपने ऐप्लिकेशन के असली उपयोगकर्ताओं के साथ जेएसपीआई को आज़माने के लिए, ऑरिजिन ट्रायल के लिए साइन अप करें. अगर आपको निर्देशों की ज़रूरत है, तो ऑरिजिन ट्रायल का इस्तेमाल शुरू करना पढ़ें. जेएसपीआई टीम को आपके ऑरिजिन ट्रायल से जुड़े सुझाव मिलने का इंतज़ार है (निर्देशों में पांचवां चरण देखें) ताकि शिप करते समय यह सुविधा आपकी ज़रूरतों के हिसाब से हो!