我试图让window.resolveLocalFileSystemURL
返回true或false,以便我可以在另一个函数中同步使用它。
例如,我想这样做。
function fileExists(file) {
window.resolveLocalFileSystemURL(file,
function(entry) {
console.log('it exists');
return true;
},
function(err) {
console.log('no sign of it');
return false;
});
}
if (fileExists(file)) {
// it exists
} else {
// doesn't exist
}
我在使用Cordova开发的iOS应用程序中使用它。我没有把函数发送到console.log,但我无法获得返回值。有什么想法吗?
答案 0 :(得分:1)
万一有人在寻找其他选择。我想出了以下解决方案:
function fileExists(file) {
return new Promise((resolve, reject) => {
window.resolveLocalFileSystemURL(file,
(entry) => {
resolve(entry)
},
(err) => {
reject(err)
})
})
}
await fileExists(file)
.then((entry) => {
// file exists
return true
})
.catch((err) => {
// file does not exist
return false
})
答案 1 :(得分:0)
我使用回调解决了这个问题。我将函数剥离回准系统,并通过添加回调来调用它们。
function fileExists(file,callback) {
window.resolveLocalFileSystemURL(file,
function(entry) {
callback(true);
},
function(err) {
callback(false);
});
}