您正在询问保持单个对象同步,因为几个异步操作会修改该对象。这有点含糊(您需要按顺序执行它们吗?它们会更改相同的属性吗?)很难做出一个包罗万象的解决方案,所以我建议您确定操作必须发生的顺序(如果有) ,并使用async库来处理控制流。
如果您想将结果传递到按顺序执行的函数链,该async.waterfall方法(下面的示例)很有用。库中还包含许多其他有用的函数,例如async.eachSeries(按顺序对每个数组项执行一次函数)和
async.parallel(同时执行一组函数。)所有文档都可在https://github.com/caolan/async
var async = require('async');
function calculateX(callback){
  async.waterfall(
  [ 
    function(done){
      var x = 0;
      asyncCall1(x, function(x1){   // add x1=x+1;
        done(null, x1);
      });
    },
    function(x1, done){
      asyncCall2(x1, function(x2){   // add x2=x1+2;
        done(null, x2);
      });
    },
  ],
  function(err, x2){
    var t = x2;
    callback(t);
  });
};
calculateX(function(x2){
  mongo.save(x2, function(err){ // or something idk mongo
    if(err){ console.log(err) };
  });
});