0

YDN データベースから x 行を削除したいのですが、(!) これが完了したら、別のことをしてください。

削除ループが終了するまで「何か他のもの」を待機させるにはどうすればよいですか?

私はいくつかのオプションを試しました

function DeleteAndThenDoSomethingElse()
{
    return new Promise((resolve, reject) => {

        var df = db.values('myDatabaseTable');
            
        df.done(function (items) {
            var n = items.length;
            var sequence = Promise.resolve();
            for (var i = 0; i < n; i++) 
            {
                const my_i = i;
                const my_premid = items[i].premid;
    
                console.log(i + ': delete Data-ID: '+ my_premid);
                sequence = sequence.then(async function() {
                    await db.remove('datenbank_id', my_premid).done(function() {
                        console.log('Delete of ' + my_premid + ' success.');    
                    }).fail(function(e) {
                        console.log(e.message);
                    });
                });
            }
            sequence = sequence.then(console.log('Now do something else'));
            return sequence;
        }   
    });
}

しかし、「今何か他のことをする」は、「XYの削除成功」の量を待つことはありません。また、async/await-addition なしで試しました。db.remove は常に同期しているようです。

ループ内の削除が最初に実行され、次にループの後にプロミスに連鎖するようにするには、何を変更する必要がありますか?

4

0 に答える 0