kopia lustrzana https://github.com/micropython/micropython
webassembly/api: Inject asyncio.run if needed by the script.
This allows a simple way to run the existing asyncio tests under the webassembly port, which doesn't support `asyncio.run()`. Signed-off-by: Damien George <damien@micropython.org>pull/14328/head
rodzic
8a3546b3bd
commit
49af8cad49
|
@ -228,6 +228,16 @@ async function runCLI() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
// If the script to run ends with a running of the asyncio main loop, then inject
|
||||||
|
// a simple `asyncio.run` hook that starts the main task. This is primarily to
|
||||||
|
// support running the standard asyncio tests.
|
||||||
|
if (contents.endsWith("asyncio.run(main())\n")) {
|
||||||
|
const asyncio = mp.pyimport("asyncio");
|
||||||
|
asyncio.run = async (task) => {
|
||||||
|
await asyncio.create_task(task);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mp.runPython(contents);
|
mp.runPython(contents);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
Ładowanie…
Reference in New Issue