是javascript回调原子

use*_*547 6 javascript node.js express

我想确保在不同位置托管的两个独立第三方数据库中的字段是同步的.我有以下通用节点/ express js代码:

router.post ('url', function(req,res,next) {

    third_party_api_1.set_a (req.body.param, function(err, a) {

        third_party_api_2.set_b (req.body.param, function(err, b) {
            res.end()
        })

    })

})
Run Code Online (Sandbox Code Playgroud)

如果最终用户发帖(param = 1)我期望(a = b = 1).如果他们发布(param = 2)我期望(a = b = 2).如果两个用户同时发布(param = 1)和(param = 2),第三方数据库中的a和b是否总是相等?我知道他们可以是1或2取决于时间,但我想确保它是(a = b = 1)或(a = b = 2)但不是(a = 1,b = 2)或( a = 2,b = 1).

换句话说,意志set_aset_b"原子"?

谢谢!

编辑#1:"a"是第三方数据库中的单个值,"b"是另一个第三方数据库中的另一个值,我希望用户发布一个值,我的代码将a和b替换为那个用户价值.

编辑#2:我无法直接控制第三方数据库,我只能调用公共API.也许我需要围绕api调用的互斥量?我该如何实现呢?