当前位置: 首页>>代码示例>>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;未经允许,请勿转载。