Запуск функций asyn c в скрипте Google Apps - PullRequest
3 голосов
/ 13 апреля 2020

Я пытаюсь запустить WebAssembly в новой среде выполнения скрипта Google Apps V8, и она, похоже, поддерживается, однако кажется, что функции asyn c прекращаются после того, как они возвращают Promise.

let wasm= new Uint8Array([/* snip */]).buffer
function add(a,b) {
  return((async()=>{
  console.log("running function...")
  results=await WebAssembly.instantiate(wasm)
  return results.instance.exports.add(a,b)
})());
}
function test(){
  add(2,3).then(console.log).catch(console.error)
}

когда я запускаю test "работает функция ..." записывается, то ничего. Нет ошибок, нет результатов. Я подтвердил, что WebAssembly.instantiate возвращает обещание. Кто-нибудь знает, что происходит, или это что-то спросить у Google?

Обновление:

Создана проблема в https://issuetracker.google.com/issues/153828715

1 Ответ

2 голосов
/ 14 апреля 2020

Асинхронные функции еще не полностью поддерживаются в V8. На самом деле существует открытый трекер проблем по этому поводу. Вы можете щелкнуть звездочку в левом верхнем углу страницы, чтобы отслеживать эту проблему.

В любом случае, имейте в виду, что в официальной документации , содержащей ссылку на *1006*, нет явного заявления, относящегося к наличие этих функций в V8. В нем просто говорится, что вы можете использовать ключевые слова, такие как async, в своем коде, но в нем не указано, какие функции вы получите, если будете его использовать.

Ссылка:

...