答えて

0

キューの先頭を使用して後続のサービス呼び出しをキューに入れて、完了するたびにそれらをポップすることができます。

それは何かのようになります...

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は次のものを呼び出します。

関連する問題