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

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

Chrome 123 से लेकर Chrome 128 तक, JSPI, ऑरिजिन ट्रायल के तौर पर उपलब्ध है. Introducing the WebAssembly JavaScript Promise Integration API ब्लॉग पोस्ट में या specification draft में, जेएसपीआई के बारे में ज़्यादा जानें.

इस सुविधा को इस्तेमाल करने के तरीके को बेहतर तरीके से समझने के लिए, C प्रोग्राम का यह उदाहरण देखें. इसमें, 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 से JSPI की सुविधा का पता लगाने के लिए, यह तरीका अपनाएं:

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

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

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