WebAssembly JavaScript প্রতিশ্রুতি ইন্টিগ্রেশন (JSPI) অরিজিন ট্রায়ালে প্রবেশ করে

JavaScript প্রতিশ্রুতি ইন্টিগ্রেশন (JSPI) হল একটি API যা অ্যাসিঙ্ক্রোনাস ওয়েব API অ্যাক্সেস করার জন্য WebAssembly-তে সংকলিত সিঙ্ক্রোনাস সিকোয়েন্সিয়াল কোডকে অনুমতি দেয়। অনেক ওয়েব এপিআই জাভাস্ক্রিপ্টের প্রতিশ্রুতি অনুসারে তৈরি করা হয়েছে: অনুরোধ করা অপারেশনটি অবিলম্বে সম্পাদন করার পরিবর্তে, তারা এটি করার প্রতিশ্রুতি ফিরিয়ে দেয়। যখন কার্যটি শেষ পর্যন্ত সঞ্চালিত হয়, ব্রাউজারের টাস্ক রানার প্রতিশ্রুতি সহ যেকোনো কলব্যাক আহ্বান করে। JSPI এই আর্কিটেকচারে হুক করে একটি WebAssembly অ্যাপ্লিকেশান স্থগিত করার অনুমতি দেওয়ার জন্য যখন প্রতিশ্রুতি ফেরত দেওয়া হয়, এবং প্রতিশ্রুতি সমাধান হয়ে গেলে পুনরায় চালু করা হয়।

Chrome 123 থেকে Chrome 128 পর্যন্ত, JSPI একটি অরিজিন ট্রায়াল হিসাবে উপলব্ধ । JSPI সম্পর্কে আরও জানুন ব্লগ পোস্টে WebAssembly JavaScript প্রতিশ্রুতি ইন্টিগ্রেশন API প্রবর্তন বা স্পেসিফিকেশন ড্রাফ্ট থেকে।

এই বৈশিষ্ট্যটি কীভাবে ব্যবহার করবেন তা আরও ভালভাবে বোঝার জন্য, একটি 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

আপনি নিম্নলিখিত হিসাবে জাভাস্ক্রিপ্ট থেকে JSPI সমর্থন বৈশিষ্ট্য সনাক্ত করতে পারেন:

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

পূর্ববর্তী কোড নমুনা থেকে JSPI-এর একটি ডেমো Glitch-এ উপলব্ধ এবং নিম্নলিখিতটিতে এম্বেড করা হয়েছে। আপনি চাইলে এমস্ক্রিপ্টেন-জেনারেটেড সোর্স কোড দেখতে পারেন, কিন্তু প্রকৃতপক্ষে আকর্ষণীয় কোড হল আসল সি প্রোগ্রাম (এই লিঙ্কে ক্লিক করলে কোডটি ডাউনলোড হবে)।

আপনার অ্যাপ্লিকেশনের প্রকৃত ব্যবহারকারীদের সাথে JSPI ব্যবহার করে দেখতে, অরিজিন ট্রায়ালের জন্য সাইন আপ করুন । আপনার নির্দেশাবলীর প্রয়োজন হলে মূল ট্রায়াল দিয়ে শুরু করুন পড়ুন। JSPI টিম আপনার মূল ট্রায়াল ফিডব্যাক পাওয়ার জন্য উন্মুখ হয়ে আছে (নির্দেশাবলীতে ধাপ 5 দেখুন) যাতে ফিচারটি পাঠানোর সময় আপনার প্রয়োজনের সাথে খাপ খায়!