Remove dataLoadPromise in pyodide.js (#1075)

This is not necessary, because postRun is not run until all dependencies
are satisfied.

Since the definition of Module.postRun is slightly modified here, I took
the opportunity to convert it to use async/await.
This commit is contained in:
Dexter Chua 2021-01-09 00:28:03 +08:00 committed by GitHub
parent e11d40ef04
commit 3e33d88373
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 25 deletions

View File

@ -362,31 +362,15 @@ var languagePluginLoader = new Promise((resolve, reject) => {
}; };
Module.locateFile = (path) => baseURL + path; Module.locateFile = (path) => baseURL + path;
var postRunPromise = new Promise((resolve, reject) => { Module.postRun = async () => {
Module.postRun = () => {
delete self.Module; delete self.Module;
fetch(`${baseURL}packages.json`) let response = await fetch(`${baseURL}packages.json`);
.then((response) => response.json()) let json = await response.json();
.then((json) => {
fixRecursionLimit(self.pyodide); fixRecursionLimit(self.pyodide);
self.pyodide = makePublicAPI(self.pyodide, PUBLIC_API); self.pyodide = makePublicAPI(self.pyodide, PUBLIC_API);
self.pyodide._module.packages = json; self.pyodide._module.packages = json;
resolve(); resolve();
});
}; };
});
var dataLoadPromise = new Promise((resolve, reject) => {
Module.monitorRunDependencies =
(n) => {
if (n === 0) {
delete Module.monitorRunDependencies;
resolve();
}
}
});
Promise.all([ postRunPromise, dataLoadPromise ]).then(() => resolve());
const scriptSrc = `${baseURL}pyodide.asm.js`; const scriptSrc = `${baseURL}pyodide.asm.js`;
loadScript(scriptSrc, () => { loadScript(scriptSrc, () => {