0

嘿,这篇文章中有 2 个问题,对于有经验的 js 人来说,它们可能很简单 :-)

第一的; readEntries当我传递它时,为什么“文件名”在内部未定义?

第二; 为什么目录为空时总是正确的?

这是我的代码:我正在getPicturepath使用“women.png”之类的字符串进行调用。

function getPicturePath(filename){
    alert(filename); //is correct
    var reader = DATADIR.createReader();
    reader.readEntries(function(entries, filename){
    alert(filename);//is undefined ???
        var doWeHaveIt = function(entries,filename){
            checkForFile(entries,filename)
            };
        if(doWeHaveIt){
            alert('allready have: '+DATADIR.fullPath+filename);

        } else {
            alert('need to download file: '+filename);
        }
    },onError);
}

function checkForFile(entries,filename){
    console.log("The dir has "+entries.length+" entries.");
    if(entries.indexOf(filename)!=-1){
        alert(filename+' allready exists');
        return true;
    } else {
        alert(filename+" doesn't exists");
        return false;
    }
}
4

1 回答 1

1
reader.readEntries(function(entries, filename){

这是定义参数 entries和的函数filename

例如,此函数可能会执行以下操作:

readEntries: function( callback ) {
    // do something, then
    callback( some, datas );
}

如果你只是想filename在这个函数中使用,就使用它。像这样:

function getPicturePath(filename){
    alert(filename); //is correct
    var reader = DATADIR.createReader();
    reader.readEntries(function(entries){
        alert(filename);// is still correct

第二部分(总是正确的)是因为这个:

function hi() {}

if ( hi ) {
    // You're always getting there.
}

我写的正是你所做的。我让你猜猜如何纠正:-)

于 2012-07-19T10:45:34.103 回答