0

由于州长的限制,我有一个要求,用户必须一次处理多个记录。

对于传入的多条记录,每条记录都会被提取并调用 apex。成功响应后必须再次发出相同的请求。像这样处理所有记录。

有人可以帮助我如何实现这一目标。

import { LightningElement, api, wire, track } from 'lwc';
import createRecord from '@salesforce/apex/OpportunityLoadController.createRecord';
export default class OpportunityLoadLWC extends LightningElement {  
@api error;
@api resultLst = [];
@api message; 
//
//Other logic
// 
handleClick(e) {
        var oneRecord = resultLst.pop();
        createRecord({
           data : oneRecord
        })
        .then((result) => {
            //call createRecord again
        })
        .catch((error) => {
            this.message = 'Error received: code' + error.errorCode + ', ' +
                'message ' + error.body.message;
        });
    }

}

4

1 回答 1

0

如果我们为每个记录调用 apex,它将不会被优化

但是,可能会遇到需要插入数千条记录的用例,或者上述用例。

这可以通过将记录分块并将它们放入队列中来实现,

您可能需要使用 setInterval() 继续检查队列是否有记录并需要处理。

使用带有 async/await 的队列一次处理一个块,瞧!

同样,该解决方案是资源密集型的,如果不担心,则应使用该解决方案。

于 2021-01-03T12:03:12.387 回答