Viene avviata la prova dell'origine di WebAssembly JavaScript Promise Integration (JSPI)

JavaScript Promise Integration (JSPI) è un'API che consente la codice sequenziale compilato in WebAssembly per accedere alle API web asincrone. Molti Le API web sono sviluppate in termini di JavaScript promesse: invece di eseguire immediatamente l'operazione richiesta, restituisce una promessa per farlo. Quando l'azione viene finalmente eseguita, l'esecutore dell'attività del browser qualsiasi callback con la promessa. JSPI si collega a questa architettura consentire la sospensione di un'applicazione WebAssembly quando viene restituita la promessa, e riprenderli quando la promessa è risolta.

Da Chrome 123 a Chrome 128, JSPI è disponibile come prova dell'origine. Scopri di più su JSPI nel post del blog Introduzione all'API WebAssembly JavaScript Promise Integration o dal bozza della specifica.

Per comprendere meglio come utilizzare questa funzionalità, considera quanto segue: estratto di un programma C che calcola la sequenza di Fibonacci mediante l'outsourcing della oltre a una funzione 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);
});

Per compilare questo programma C in WebAssembly, utilizza il seguente comando, che richiede l'SDK Emscripten.

emcc -O3 badfib.c -o index.html -s ASYNCIFY=2

Puoi rilevare le funzionalità del supporto JSPI da JavaScript nel seguente modo:

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

Una demo di JSPI dell'esempio di codice precedente è disponibile su Glitch e anche incorporato nella seguire. Puoi vedere il video generato da Emscripten codice sorgente se che vuoi, ma il codice davvero interessante è Programma C originale (facendo clic su questo link scaricherai il codice).

Per provare JSPI con utenti reali della tua applicazione, registrarsi alla prova dell'origine. Leggi la pagina Iniziare a utilizzare le prove dell'origine se: hanno bisogno di istruzioni. Il team di JSPI non vede l'ora di ricevere la tua origine il feedback sulla prova (consulta il Passaggio 5 nella istruzioni) in modo che la funzionalità si adatti alle tue esigenze al momento della spedizione.