WebAssembly JavaScript Promise Integration API یک برنامه Wasm را هنگامی که یک تماس API همزمان صادر می کند به حالت تعلیق در می آورد و پس از تکمیل عملیات I/O ناهمزمان آن را از سر می گیرد.
توسعهدهندگان موتور جاوا اسکریپت/WebAssembly V8 Google API یکپارچهسازی وعده جاوا اسکریپت (JSPI) را معرفی کردهاند که به برنامههای WebAssembly که دسترسی به عملکرد خارجی را همزمان فرض میکنند اجازه میدهد تا به راحتی در محیطهای ناهمزمان کار کنند. p>
توسعه دهندگان گفتند که در حال حاضر در مرحله آزمایشی، JSPI نباید در برنامه های تولید استفاده شود. آنها گفتند که در نهایت به یک استاندارد برای پیاده سازی در مرورگرهای اصلی تبدیل خواهد شد.
JSPI در یک پست وبلاگ V8 در ۱۹ ژانویه معرفی شد، برنامههای کاربردی WebAssembly همزمان و APIهای وب ناهمزمان را پل میکند. این کار با تعلیق برنامه زمانی که یک تماس API همزمان صادر میکند و پس از پایان عملیات I/O ناهمزمان از سر گرفته میشود. و JSPI این کار را با تغییرات بسیار کمی در خود برنامه انجام می دهد.
بسیاری از APIهای مدرن در وب با تقسیم عملکرد به شروع و وضوح یک عملیات به صورت ناهمزمان کار می کنند. JSPI وعده جاوا اسکریپت را که از یک فراخوانی API ناهمزمان بازگردانده شده است، رهگیری می کند، منطق اصلی برنامه WebAssembly را به حالت تعلیق در می آورد و یک Promise را از صادرات مورد استفاده برای ورود به برنامه WebAssembly برمی گرداند. وقتی API ناهمزمان کامل شد، برنامه WebAssembly از سر گرفته می شود تا بتواند نتایج تماس API را پردازش کند.
توسعه دهندگان گفتند که کار با Promises به خصوص با WebAssembly دشوار است، زیرا دستکاری مستقیم Promises در WebAssembly امکان پذیر نیست. JSPI به توسعه دهندگان اجازه می دهد تا برنامه های WebAssembly را با استفاده از APIهای همزمان ایجاد کنند و همچنان در اکوسیستم ناهمزمان وب شرکت کنند.
JSPI در معماری های Intel و ARM64 در حال توسعه است. برای Linux، Windows، macOS و ChromeOS در دسترس است. توسعه دهندگان می توانند با مراجعه به chrome://flags در کروم، جستجوی «Experimental WebAssembly JavaScript Promise Promise (JSPI)» و علامت زدن کادر، JSPI را به صورت محلی آزمایش کنند. استفاده از کانال کروم قناری توصیه می شود. JSPI هنوز نمی تواند برای کاربران نهایی فعال شود.
WebAssembly به عنوان یک پیشرفت در عملکرد برنامه وب مورد استقبال قرار گرفته است. فرمت دستورالعمل دودویی بسیاری از زبان های برنامه نویسی مختلف از جمله C/C++، C# و Rust را قادر می سازد تا برای برنامه نویسی وب استفاده شوند.
پست های مرتبط
Google V8 API WebAssembly و وب ناهمزمان را پل می کند
Google V8 API WebAssembly و وب ناهمزمان را پل می کند
Google V8 API WebAssembly و وب ناهمزمان را پل می کند