Javascript Salesforce LWC-多顶点标注强制失败

Javascript Salesforce LWC-多顶点标注强制失败,javascript,salesforce,apex,lwc,Javascript,Salesforce,Apex,Lwc,我正在尝试从FOR循环强制地对Apex进行多次调用。但奇怪的是,只有前6笔交易获得了成功。其余的都失败了。开发人员文档中未提及LWC到Apex的标注数量限制 采用这种方法的原因是,每个详图索引将遵循一组新的顶点限制 从'lwc'导入{LightningElement,api,wire,track}; 从“@salesforce/apex/FileUploaderXCtrl.insertRecords”导入insertRecords; 导出默认类FileUploadExample扩展了Lightn

我正在尝试从FOR循环强制地对Apex进行多次调用。但奇怪的是,只有前6笔交易获得了成功。其余的都失败了。开发人员文档中未提及LWC到Apex的标注数量限制

采用这种方法的原因是,每个详图索引将遵循一组新的顶点限制

从'lwc'导入{LightningElement,api,wire,track};
从“@salesforce/apex/FileUploaderXCtrl.insertRecords”导入insertRecords;
导出默认类FileUploadExample扩展了LightningElement{
文件
文件名;
文件内容;
输出=[];
按钮可视=错误;
位置=0;
获取acceptedFormats(){
返回['.csv'];
}
上载文件(事件){
console.log('Hey!编号为:------------>'+this.output.length);
for(让index=0;index{console.log('******\n\nHurray!正在工作…\n\n********');})
.catch((错误)=>{console.log('gohome…');});
}
}
handleUploadFinished(事件){
如果(event.target.files.length>0){
this.filename=event.target.files[0].name;
this.file=event.target.files[0];
var reader=new FileReader();
var jsonObj=[];
reader.readAsText(this.file,“UTF-8”);
reader.onload=(evt)=>{
console.log('文件名:------------>'+此.filename);
this.filecontent=evt.target.result;
让rows=this.filecontent.split('\n');
let header=行[0]。拆分(',');
rows.shift();
log('Header:------------>'+Header);
rows.forEach(元素=>{
设data=element.split(',');
设obj={};
for(让index=0;indexjsonObj.splice(0,10000));
result.forEach(元素=>{
this.output.push(JSON.stringify(元素));
});
console.log('Apex输入参数:------------>'+this.output);
console.log('callout的数量:------------>'+this.output.length);
}
reader.onloadend=(evt)=>{
this.buttonVisible=true;
}
reader.onerror=(evt)=>{
if(evt.target.error.name==“NotReadableError”){
console.log('读取此文件时出错!!');
警报('读取此文件时出错!!');
}
}
}
}
}

在stackexchange上已经有几篇关于这方面的好文章了。这被称为boxcarring,lwc做boxcarring是因为浏览器能够限制并行调用的数量

您应该回顾一下,了解salesforce为什么在lwc中使用boxcarring

简而言之,您可以选择使用异步承诺来避免这些问题,否则其他解决方法将是setTimeout

这两种方法都不能提供很好的用户体验,相反,您应该探索实现这一点的其他替代方法,包括以下内容

  • 对所有数据操作使用批量API v2.0
  • 在Heroku之类的平台上构建UI界面,并使用python或Node进行处理,而不是使用apex进行资源密集型工作

    • stackexchange上已经有几篇关于这方面的好文章了。这被称为boxcarring,lwc做boxcarring是因为浏览器能够限制并行调用的数量

      您应该回顾一下,了解salesforce为什么在lwc中使用boxcarring

      简而言之,您可以选择使用异步承诺来避免这些问题,否则其他解决方法将是setTimeout

      这两种方法都不能提供很好的用户体验,相反,您应该探索实现这一点的其他替代方法,包括以下内容

      • 对所有数据操作使用批量API v2.0
      • 在Heroku之类的平台上构建UI界面,并使用python或Node进行处理,而不是使用apex进行资源密集型工作

      是否尝试使用非同步调用?(@future,batch,schedule)是否尝试使用非同步调用?(@未来、批次、时间表)