JavaScript Promise इंटिग्रेशन (JSPI), एक ऐसा एपीआई है जो सिंक्रोनस (सिंक्रोनस) का इस्तेमाल करने की अनुमति देता है एसिंक्रोनस वेब एपीआई को ऐक्सेस करने के लिए, WebAssembly में कंपाइल किया गया कोड. कई Web API को JavaScript के हिसाब से बनाया जाता है वाद: अनुरोध की गई कार्रवाई तुरंत करने के बजाय, प्रॉमिस लौटा देता है ऐसा किया जा सकता है. कार्रवाई पूरी हो जाने के बाद, ब्राउज़र का टास्क रनर प्रॉमिस के साथ किसी भी कॉलबैक को शुरू करता है. जेएसपीआई को इस आर्किटेक्चर से जोड़कर, प्रॉमिस के वापस आने पर, WebAssembly ऐप्लिकेशन को निलंबित होने की अनुमति देता है, और प्रॉमिस खत्म होने के बाद फिर से शुरू किया जाएगा.
Chrome 123 से लेकर Chrome 128 तक, JSPI, ऑरिजिन ट्रायल के तौर पर उपलब्ध है. Introducing the WebAssembly JavaScript Promise Integration API ब्लॉग पोस्ट में या specification draft में, जेएसपीआई के बारे में ज़्यादा जानें.
इस सुविधा का इस्तेमाल करने के बारे में बेहतर तरीके से जानने के लिए, इन बातों पर ध्यान दें उस C प्रोग्राम का हिस्सा जो फ़ाइबोनाशी सीक्वेंस की गणना में जोड़ा जाता है.
// 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.
}
पिछले कोड सैंपल से JPGI का डेमो glitch पर उपलब्ध है और फ़ॉलो किया जा रहा है. मैन्युअल तरीके से जनरेट किया गया Emscripten सोर्स कोड, अगर लेकिन सबसे दिलचस्प कोड यह है कि ओरिजनल C प्रोग्राम (यह लिंक क्लिक करने से कोड डाउनलोड हो जाएगा).
अपने ऐप्लिकेशन के वास्तविक उपयोगकर्ताओं के साथ जेएसपीआई को आज़माने के लिए, ऑरिजिन ट्रायल के लिए साइन अप करें. अगर आपको निर्देश चाहिए, तो ऑरिजिन ट्रायल शुरू करना लेख पढ़ें. जेएसपीआई टीम आपकी साइट का ऑरिजिन पाने की कोशिश कर रही है आज़माने के लिए सुझाव (चरण 5 यहां देखें: देखें) ताकि यह सुविधा शिप करते समय आपकी ज़रूरतों को पूरा कर सके!