當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript sp.createBatch方法代碼示例

本文整理匯總了TypeScript中@pnp/sp.sp.createBatch方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript sp.createBatch方法的具體用法?TypeScript sp.createBatch怎麽用?TypeScript sp.createBatch使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在@pnp/sp.sp的用法示例。


在下文中一共展示了sp.createBatch方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1:

              .then(() => {
                
                //We'll create all the new items in a single batch
                let cloneBatch: any = sp.createBatch();

                //Process each item
                items.forEach((item: any) => {
                  sp.web.lists.getById(this.context.pageContext.list.id.toString()).items.inBatch(cloneBatch).add(item)
                    .catch((error: any): void => {
                      Log.error(LOG_SOURCE, error);
                      this.safeLog(error);
                    });
                });

                cloneBatch.execute()
                  .then(() => {
                    location.reload(); //Reloads the entire page since there isn't currently a way to just reload the list view
                  })
                  .catch((error: any): void => {
                    Log.error(LOG_SOURCE, error);
                    this.safeLog(error);
                  });
                  
              })
開發者ID:AdrianDiaz81,項目名稱:sp-dev-fx-extensions,代碼行數:24,代碼來源:SpfxCloneCommandSet.ts

示例2: switch

          .then((listFields: Array<IListField>): void => {

            // We'll request all the selected items in a single batch
            let itemBatch: any = sp.createBatch();

            //Get an array of the internal field names for the select along with any necessary expand fields
            let fieldNames: Array<string> = new Array<string>();
            let expansions: Array<string> = new Array<string>();
            listFields.forEach((field: IListField) => {
              switch (field.TypeAsString) {
                case 'User':
                case 'UserMulti':
                case 'Lookup':
                case 'LookupMulti':
                  fieldNames.push(field.InternalName + '/Id');
                  expansions.push(field.InternalName);
                  break;
                default:
                  fieldNames.push(field.InternalName);
              }
            });

            //This will be our cleansed items to clone array
            let items: Array<any> = new Array<any>();

            //Batch up each item for retrieval
            for (let row of event.selectedRows) {

              //grab the item ID
              let itemId: number = row.getValueByName('ID');

              //Add the item to the batch
              sp.web.lists.getById(this.context.pageContext.list.id.toString()).items.getById(itemId).select(...fieldNames).expand(...expansions).inBatch(itemBatch).get<Array<any>>()
                .then((result: any) => {
                  //Copy just the fields we care about and provide some adjustments for certain field types
                  let item: any = {};
                  listFields.forEach((field: IListField) => {
                    switch (field.TypeAsString) {
                      case 'User':
                      case 'Lookup':
                        //These items need to be the underlying Id and their names have to have Id appended to them
                        item[field.InternalName + 'Id'] = result[field.InternalName]['Id'];
                        break;
                      case 'UserMulti':
                      case 'LookupMulti':
                        //These items need to be an array of the underlying Ids and the array has to be called results
                        // their names also have to have Id appended to them
                        item[field.InternalName + 'Id'] = {
                          results: new Array<Number>()
                        };
                        result[field.InternalName].forEach((prop: any) => {
                          item[field.InternalName + 'Id'].results.push(prop['Id']);
                        });
                        break;
                      case "TaxonomyFieldTypeMulti":
                        //These doesn't need to be included, since the hidden Note field will take care of these
                        // in fact, including these will cause problems
                        break;
                      case "MultiChoice":
                        //These need to be in an array of the selected choices and the array has to be called results
                        item[field.InternalName] = {
                          results: result[field.InternalName]
                        };
                        break;
                      default:
                        //Everything else is just a one for one match
                        item[field.InternalName] = result[field.InternalName];
                    }
                  });
                  items.push(item);
                })
                .catch((error: any): void => {
                  Log.error(LOG_SOURCE, error);
                  this.safeLog(error);
                });
            }

            //Execute the batch
            itemBatch.execute()
              .then(() => {
                
                //We'll create all the new items in a single batch
                let cloneBatch: any = sp.createBatch();

                //Process each item
                items.forEach((item: any) => {
                  sp.web.lists.getById(this.context.pageContext.list.id.toString()).items.inBatch(cloneBatch).add(item)
                    .catch((error: any): void => {
                      Log.error(LOG_SOURCE, error);
                      this.safeLog(error);
                    });
                });

                cloneBatch.execute()
                  .then(() => {
                    location.reload(); //Reloads the entire page since there isn't currently a way to just reload the list view
                  })
                  .catch((error: any): void => {
                    Log.error(LOG_SOURCE, error);
                    this.safeLog(error);
//.........這裏部分代碼省略.........
開發者ID:AdrianDiaz81,項目名稱:sp-dev-fx-extensions,代碼行數:101,代碼來源:SpfxCloneCommandSet.ts


注:本文中的@pnp/sp.sp.createBatch方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。