0
呼び出します。同期の観測は、私は以下のようにサービスを削除ODATA呼び出すdeleteメソッドを持って
データグリッドの場合、3行を削除すると、メソッドは個々の行に対して3回呼び出されます。
メソッドdeleteValues
が次々に3回呼び出されても、1と2のサービスコールは、1のサービスコールが完了したときにのみ行われる必要があります。
呼び出します。同期の観測は、私は以下のようにサービスを削除ODATA呼び出すdeleteメソッドを持って
データグリッドの場合、3行を削除すると、メソッドは個々の行に対して3回呼び出されます。
メソッドdeleteValues
が次々に3回呼び出されても、1と2のサービスコールは、1のサービスコールが完了したときにのみ行われる必要があります。
キューの先頭を使用して後続のサービス呼び出しをキューに入れて、完了するたびにそれらをポップすることができます。
それは何かのようになります...
private isDeleting;
private deleteValuesQueue;
deleteValues = (key) => {
this.deleteValuesQueue.unshift(key);
if(!isDeleting) this.runDeleteValues(this.deleteValuesQueue.pop());
}
runDeleteValues = (key) => {
this.isDeleting = true;
// your actual delete function goes here...
// when the promise resolves or rejects and you want to execute the next item off the queue do
if(deleteValuesQueue.length > 0) this.runDeleteValues(this.deleteValuesQueue.pop());
else this.isDeleting = false;
}
ですから、削除したいキーのキューを追跡している、とあなたが現在何かを削除している場合で、ここで何が起こっていますか。これは、コンポーネントから呼び出されたdeletedValues()で管理されます。
何かを実行していない場合は、それを実際の削除に送信してください。また、それをキューに投げる。あなたが実際の削除を実行しているときに、最後にキューに何かがあるかどうかを確認してください。削除が完了したら、deleteValuesは次のものを呼び出します。