JavaScript Promise Integration (JSPI), WebAssembly'e derlenen sıralı senkronize kodun, eşzamansız Web API'lerine erişmesine olanak tanıyan bir API'dir. Birçok Web API'leri JavaScript açısından tasarlanmıştır vaatleri: istenen işlemi hemen gerçekleştirmek yerine bir söz döndürüyor sahip olmanız gerekir. Eylem nihai olarak gerçekleştirildiğinde, tarayıcının görev çalıştırıcısı vaat ile birlikte geri çağırmalar yapar. JSPI, bu mimariye bağlanarak vaat verildiğinde WebAssembly uygulamasının askıya alınmasına izin verir. ve verilen söz yerine getirildiğinde de işleme devam edilecektir.
Chrome 123 sürümünden Chrome 128 sürümüne kadar JSPI, kaynak denemesi olarak kullanılabilir. Blog yayınında JSPI hakkında daha fazla bilgi edinin. WebAssembly JavaScript Promise Integration API ile tanışın veya spesifikasyon taslağı.
Bu özelliği nasıl kullanacağınızı daha iyi anlamak için şunları göz önünde bulundurun: 2025 yılına kadar dış kaynak kullanarak Fibonacci dizisini hesaplayan bir C programından eklemesi gerekir.
// 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);
});
Bu C programını WebAssembly'de derlemek için aşağıdaki komutu kullanın: Emscripten SDK'sının kullanılmasını gerektirir.
emcc -O3 badfib.c -o index.html -s ASYNCIFY=2
Aşağıdaki adımları uygulayarak JavaScript'ten JSPI desteğini özellik algısı yoluyla algılayabilirsiniz:
if ('Suspender' in WebAssembly) {
// JSPI is supported.
}
Önceki kod örneğindeki JSPI demosu Glitch'te mevcuttur ve takip ediliyor. Emscripten tarafından oluşturulmuş kaynak kodu fakat aslında ilginç olan kod, orijinal C programı (bu bağlantıyı tıkladığınızda kod indirilir).
JSPI'yı uygulamanızın gerçek kullanıcılarıyla denemek için kaynak denemesine kaydolun. Aşağıdaki şartları karşılıyorsanız Kaynak denemelerini kullanmaya başlama başlıklı makaleyi inceleyin. talimatlar gerekir. JSPI ekibi, özelliğin kullanıma sunulduğunda ihtiyaçlarınıza uygun olması için ilk denemeyle ilgili geri bildiriminizi (talimatlar için 5. Adım'a bakın) bekliyor.