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,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "libcurl.js",
|
||||
"version": "0.6.13",
|
||||
"version": "0.6.14",
|
||||
"description": "An experimental port of libcurl to WebAssembly for use in the browser.",
|
||||
"main": "libcurl.mjs",
|
||||
"exports": {
|
||||
|
|
|
@ -3,15 +3,15 @@
|
|||
<head>
|
||||
<link rel="icon" href="data:;base64,=">
|
||||
|
||||
<script src="./out/libcurl_full.js"></script>
|
||||
<script src="./out/libcurl_full.js" defer onload="main()"></script>
|
||||
<script>
|
||||
async function main() {
|
||||
console.log("libcurl.js ready?", libcurl.ready);
|
||||
console.log("waiting for wasm load");
|
||||
await libcurl.load_wasm();
|
||||
console.log("libcurl.js ready?", libcurl.ready);
|
||||
console.log("loaded libcurl.js", libcurl.version.lib);
|
||||
}
|
||||
main();
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue