Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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 获取文件路径会降低API性能_Javascript_Node.js_Google Drive Api_Backend - Fatal编程技术网

Javascript 获取文件路径会降低API性能

Javascript 获取文件路径会降低API性能,javascript,node.js,google-drive-api,backend,Javascript,Node.js,Google Drive Api,Backend,我实现了一个函数来获取驱动器文件,并在驱动器中显示文件的路径。我获取一个文件的parents字段,然后再次点击fileapi获取父文件夹名称。如果文件夹又有一个父文件夹,那么我再次调用同一个函数,因此我将其设置为递归。我有一个公共数组来填充文件路径名。所以,如果我现在一次只能处理一个文件。如果我试图一次处理多个文件,因为填充文件路径的数组是全局声明的,那么并行处理不会用适当的结果填充我的文件。寻找更好的方法 let labels = []; getDriveItems: ({params}) =

我实现了一个函数来获取驱动器文件,并在驱动器中显示文件的路径。我获取一个文件的parents字段,然后再次点击fileapi获取父文件夹名称。如果文件夹又有一个父文件夹,那么我再次调用同一个函数,因此我将其设置为递归。我有一个公共数组来填充文件路径名。所以,如果我现在一次只能处理一个文件。如果我试图一次处理多个文件,因为填充文件路径的数组是全局声明的,那么并行处理不会用适当的结果填充我的文件。寻找更好的方法

let labels = [];
getDriveItems: ({params}) => {
    // hit API to fetch all files
    //for each file call get path
    if (nextPageToken) {
        getDriveItems({params})
    }
}

getpath(fileDetails) {
    if (fileDetails.parents) {
        parentFileDetails = {get file details in parentFileDetails}
        labels.push(parentFileDetails.title);
        if (parentFileDetails.parents.length > 0) {
            getpath(parentFileDetails);
        }
    }
}

代码太不具体了。未显示实际的API调用,不清楚如何改进,以及“降低API性能”的实际含义。代码当前是同步的。当然,如果有大量递归调用,它会阻塞主线程。@estus。嗯,我正在寻找一个解决方案来解决这个问题!请参阅“不使用批处理请求”的选项3。它们一事无成,并且使您的代码变得非常复杂。@KøusikaGanesh您误解了答案的选项3。您应该在一个API调用中获取所有文件夹。然后创建文件夹结构的内存树,然后将文件映射到其中。