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;
var postRunPromise = new Promise((resolve, reject) => {
Module.postRun = () => {
delete self.Module;
fetch(`${baseURL}packages.json`)
.then((response) => response.json())
.then((json) => {
fixRecursionLimit(self.pyodide);
self.pyodide = makePublicAPI(self.pyodide, PUBLIC_API);
self.pyodide._module.packages = json;
resolve();
});
};
});
var dataLoadPromise = new Promise((resolve, reject) => {
Module.monitorRunDependencies =
(n) => {
if (n === 0) {
delete Module.monitorRunDependencies;
resolve();
}
}
});
Promise.all([ postRunPromise, dataLoadPromise ]).then(() => resolve());
Module.postRun = async () => {
delete self.Module;
let response = await fetch(`${baseURL}packages.json`);
let json = await response.json();
fixRecursionLimit(self.pyodide);
self.pyodide = makePublicAPI(self.pyodide, PUBLIC_API);
self.pyodide._module.packages = json;
resolve();
};
const scriptSrc = `${baseURL}pyodide.asm.js`;
loadScript(scriptSrc, () => {