0

这是使用 NodeJS 客户端按顺序运行相互依赖的 Firebase 事务的“正确”方式吗:

ref.child('relationships/main').child(accountID).transaction(function(data) {
    return r;
}, function(error, committed, snapshot) {
        if (error) {}
        else if (!committed) {}
        else {
            runNextTransaction();
        }
    });

最初我打算将 runNextTransaction() 放在核心函数中,因为事务首先在本地运行,但是这样会不会在链中的最后一个事务完成之前保持打开原始事务,可能会导致问题?(另外我需要为下一步提供良好的数据,所以我必须在继续之前处理碰撞。)

4

1 回答 1

4

事务是异步运行的,因此从第一个事务中启动下一个事务是可行的,但它可能无法达到您想要的效果。事务函数可以运行多次,在这种情况下您可能不希望启动多个辅助事务。您所拥有的看起来像是进行串行交易的正确方法。如果您有兴趣让事情变得更简洁,特别是如果您要链接多个交易,请考虑研究 Promises。

于 2013-04-21T20:58:15.293 回答