Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回在函数中设置值的全局数组_Javascript_Cordova - Fatal编程技术网

Javascript 返回在函数中设置值的全局数组

Javascript 返回在函数中设置值的全局数组,javascript,cordova,Javascript,Cordova,我创建了另一个帖子,但我没有编写正确的代码,也没有说明问题所在。 这里是完整的代码。 我在create函数中声明“myarray”。我将success函数中的值推送到数组中,并在create函数中返回 问题是调用create函数时没有返回任何值。我想这是我的数组的作用域,但我不知道如何解决这个问题 function Create(targetdir) { var myarray = new Array(); //Get a list of fi

我创建了另一个帖子,但我没有编写正确的代码,也没有说明问题所在。 这里是完整的代码。 我在create函数中声明“myarray”。我将success函数中的值推送到数组中,并在create函数中返回

问题是调用create函数时没有返回任何值。我想这是我的数组的作用域,但我不知道如何解决这个问题

    function Create(targetdir)
    {
        var myarray = new Array(); 

        //Get a list of file names in the directory
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);

        function onSuccess(fileSystem) 
        { 
            var entry=fileSystem.root;      
            entry.getDirectory(targetdir, {create: false, exclusive: false}, successdir, fail);     

            //filesystem2 is the target dir
            function successdir(fileSystem2) 
            {           
                var directoryReader = fileSystem2.createReader(); 
                directoryReader.readEntries(success, fail); 

                function success(entries) 
                {

                    var i;
                    for (i=0; i<entries.length; i++) 
                    {
                        myarray.push(entries[i].toURI());
                    }           
                }
            }         
        }

         return myarray;
    }
函数创建(targetdir)
{
var myarray=新数组();
//获取目录中的文件名列表
requestFileSystem(LocalFileSystem.PERSISTENT,0,onSuccess,onError);
函数onSuccess(文件系统)
{ 
var entry=fileSystem.root;
getDirectory(targetdir,{create:false,exclusive:false},successdir,fail);
//filesystem2是目标目录
函数successdir(fileSystem2)
{           
var directoryReader=fileSystem2.createReader();
directoryReader.readEntries(成功、失败);
功能成功(条目)
{
var i;
对于(i=0;i使用回调:

function Create(targetdir, callback)
{
    var myarray = new Array(); 

    //Get a list of file names in the directory
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);

    function onSuccess(fileSystem) 
    { 
        var entry=fileSystem.root;      
        entry.getDirectory(targetdir, {create: false, exclusive: false}, successdir, fail);     

        //filesystem2 is the target dir
        function successdir(fileSystem2) 
        {           
            var directoryReader = fileSystem2.createReader(); 
            directoryReader.readEntries(success, fail); 

            function success(entries) 
            {

                var i;
                for (i=0; i<entries.length; i++) 
                {
                    myarray.push(entries[i].toURI());
                }           
            }
        }

        // call callbqack
        callback(myarray);    
    }
}
使用回调:

function Create(targetdir, callback)
{
    var myarray = new Array(); 

    //Get a list of file names in the directory
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);

    function onSuccess(fileSystem) 
    { 
        var entry=fileSystem.root;      
        entry.getDirectory(targetdir, {create: false, exclusive: false}, successdir, fail);     

        //filesystem2 is the target dir
        function successdir(fileSystem2) 
        {           
            var directoryReader = fileSystem2.createReader(); 
            directoryReader.readEntries(success, fail); 

            function success(entries) 
            {

                var i;
                for (i=0; i<entries.length; i++) 
                {
                    myarray.push(entries[i].toURI());
                }           
            }
        }

        // call callbqack
        callback(myarray);    
    }
}

因为您正在调用一个异步方法,所以您正在创建的方法alwasy将不返回任何内容,因为
窗口.requestFileSystem
仍在执行其工作

function Create(targetdir)
{
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);

    function onSuccess(fileSystem) 
    { 
        var myarray = new Array(); 
    // fill myarray
    // use myarray or skip the fill array and use it directly
    }
}

或者使用@IAbstractDownvoteFactor指定的回调方法,因为您正在调用一个异步方法您正在创建的方法alwasy将不返回任何内容,因为
窗口。requestFileSystem
仍在执行其工作。您可以执行以下操作

function Create(targetdir)
{
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);

    function onSuccess(fileSystem) 
    { 
        var myarray = new Array(); 
    // fill myarray
    // use myarray or skip the fill array and use it directly
    }
}

或者使用@IAbstractDownvoteFactor指定的回调方法

我得到了以下错误:ReferenceError:找不到变量:callbackcallback是要创建的第二个参数。我得到了以下错误:ReferenceError:找不到变量:callbackcallback是要创建的第二个参数。感谢您的回复,但我在本例中没有详细说明在这里,您返回数组,以便我可以在脚本中使用它。很抱歉,我没有看到第二个参数。感谢您的回复,但我不想在此示例中详细说明您返回数组以便我可以在脚本中使用它。很抱歉,我没有看到第二个参数。