mirror of
https://github.com/ading2210/libcurl.js.git
synced 2025-05-13 14:30:02 -04:00
add abort events and load_wasm promise rejection
This commit is contained in:
parent
15a6df827e
commit
23dd3bd981
5 changed files with 29 additions and 9 deletions
|
@ -89,6 +89,14 @@ function main() {
|
|||
}
|
||||
}
|
||||
|
||||
function abort_callback(reason) {
|
||||
let abort_event = new CustomEvent("libcurl_abort", {detail: reason});
|
||||
api.events.dispatchEvent(abort_event);
|
||||
if (ENVIRONMENT_IS_WEB) {
|
||||
document.dispatchEvent(abort_event);
|
||||
}
|
||||
}
|
||||
|
||||
function load_wasm(url) {
|
||||
if (wasm_ready) return;
|
||||
|
||||
|
@ -99,13 +107,20 @@ function load_wasm(url) {
|
|||
run();
|
||||
}
|
||||
|
||||
return new Promise((resolve) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (wasm_ready) return resolve();
|
||||
api.events.addEventListener("libcurl_load", () => {resolve()});
|
||||
api.events.addEventListener("libcurl_load", () => {
|
||||
resolve();
|
||||
}, {once: true});
|
||||
api.events.addEventListener("libcurl_abort", (event) => {
|
||||
reject(event.detail);
|
||||
}, {once: true});
|
||||
});
|
||||
}
|
||||
|
||||
Module.onRuntimeInitialized = main;
|
||||
Module.onAbort = abort_callback;
|
||||
|
||||
api = {
|
||||
set_websocket: set_websocket_url,
|
||||
load_wasm: load_wasm,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue