javascript - 使用 JavaScript 在 SharePoint 库中创建文件夹结构

标签 javascript loops asynchronous sharepoint async-await

要求是使用 JavaScript 从 SharePoint 库中的数组创建文件夹结构。以下是所需的结构:

var ary = [A,B,C]

A -> Fldr1 -> Fldr2 -> File
B -> Fldr1 -> Fldr2 -> File
C -> Fldr1 -> Fldr2 -> File

但目前它在库中创建文件夹 A、B 和 C,但内部结构仅为 C 创建。

所以得到的结果是:

A 
B 
C -> Fldr1 -> Fldr2 -> File

当数组中只有一项时,下面的代码可以完美运行,但当数组中有多个项时,代码会失败。 在这里,我检查文件夹是否存在,然后检查第二级,如果不存在,则首先创建,依此类推以获取剩余结构。

   async function processArray(selectedCountries) {
    await selectedCountries.map(async (item) => {       
      let promiseCntry = await checkCntryFolder(item);       
        if(flag){ //if cntry exists                      
             let promiseChckfolder = await checkFolder(tdmrkNm);
                    if(flagFldr)//if folder exists
                    {                           
                        let promiseChkSubFolder =  await checkSubFolder(appStatus);
                            if(flagSub)//if sub -folder exists
                            {                                    
                                 let createFile =  await CreateFileInSideFolder();
                            }
                            else
                            {                                
                                let promiseCreateSub =  await createSubFolder(appStatus);                                        
                                let createFile =  await CreateFileInSideFolder();
                            }                   
                    }

            }

    });
  }
 }

最佳答案

停止使用 deferreds 并停止使用 done 方法。使用适当的 Promise 和 then 来代替。

假设这是 jQuery,其中那些具有 done 方法的对象也具有 then 方法,您可以(并且应该)只使用 async/直接等待:

async function callAry(array) {
  return Promise.all(array.map(async (item) => {
    const flag = await checkCntryFolder(item);
    if (flag) {
      const folderFlag = await checkFolder(nm);
      if (folderFlag) {
        const subFlag = await checkSubFolder(Status);
        if (subFlag) {
          await CreateFileInSideFolder();
          console.log('file done');
        }
      } 
    }
  }));
}

关于javascript - 使用 JavaScript 在 SharePoint 库中创建文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57928378/

相关文章:

javascript - 如何检索可视化放置在 div 下的元素

python - 脚本在不同机器上返回不同结果

php - 多个数据仅显示一次

c++ - ReadFile 使用 NamedPipe block 虽然使用重叠

python - 如何从 Pool.starmap_async() 中获取结果?

javascript - 无法在 JavaScript 循环中从数据库获取数据

javascript - 如何一次编辑单行的表值

javascript - JQuery ui 范围 slider

javascript - RobinBrouwer WMD - 阅读基本 jQuery

c++ - 我想在 while 循环 c++ 中将计数器递增 1