游戏读写函数promise化:game.promises

This commit is contained in:
shijian 2023-11-23 15:02:34 +08:00
parent a146f461f0
commit d8b333a995
1 changed files with 86 additions and 26 deletions

View File

@ -9886,6 +9886,62 @@ new Promise(resolve=>{
proceed2();
})};
const initGamePromises=function(){
game.promises.download=function(url,folder,dev,onprogress){
return new Promise((resolve,reject)=>{
game.download(url,folder,resolve,reject,dev,onprogress);
});
};
game.promises.readFile=function(filename){
return new Promise((resolve,reject)=>{
game.readFile(filename,resolve,reject);
});
};
game.promises.readFileAsText=function(filename){
return new Promise((resolve,reject)=>{
game.readFileAsText(filename,resolve,reject);
});
};
game.promises.writeFile=function(data,path,name){
return (new Promise((resolve,reject)=>{
game.writeFile(data,path,name,resolve);
})).then(result=>{
return new Promise((resolve,reject)=>{
if(result instanceof Error){
reject(result);
}else{
resolve(result);
}
});
});
};
game.promises.removeFile=function(dir){
return (new Promise((resolve,reject)=>{
game.removeFile(dir,resolve);
})).then(result=>{
return new Promise((resolve,reject)=>{
if(result instanceof Error){
reject(result);
}else{
resolve(result);
}
});
});
};
game.promises.getFileList=function(dir){
return new Promise((resolve,reject)=>{
game.getFileList(dir,resolve,reject);
});
};
game.promises.ensureDirectory=game.ensureDirectory;
};
if(lib.device){
lib.init.cordovaReady=function(){
if(lib.device=='android'){
@ -9989,9 +10045,9 @@ new Promise(resolve=>{
fileEntry.createWriter(function(fileWriter){
fileWriter.onwriteend=callback;
fileWriter.write(data);
});
});
});
},callback);
},callback);
},callback);
}
});
};
@ -9999,11 +10055,9 @@ new Promise(resolve=>{
window.resolveLocalFileSystemURL(lib.assetURL,function(entry){
entry.getFile(dir,{},function(fileEntry){
fileEntry.remove();
if(callback){
callback();
}
});
});
if(callback) callback();
},callback||function(){});
},callback||function(){});
};
game.getFileList=(dir,success,failure)=>{
var files=[],folders=[];
@ -10055,6 +10109,7 @@ new Promise(resolve=>{
createDirectory();
},reject));
};
initGamePromises();
if(ui.updateUpdate){
ui.updateUpdate();
}
@ -10239,6 +10294,7 @@ new Promise(resolve=>{
createDirectory();
});
};
initGamePromises();
if(ui.updateUpdate){
ui.updateUpdate();
}
@ -36248,6 +36304,10 @@ new Promise(resolve=>{
}
};
const game={
/**
* @type { { [key: string]: (...args:[])=>Promise } }
*/
promises:{},
globalEventHandlers: new class {
constructor() {
this._handlers = {};