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