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 总是保持同步。

我必须改变什么,以便首先执行循环中的删除,然后在循环之后链接到 Promise 的东西?

4

0 回答 0