Node.js gcloud节点事务中的捕获错误

Node.js gcloud节点事务中的捕获错误,node.js,google-app-engine,google-cloud-datastore,gcloud-node,Node.js,Google App Engine,Google Cloud Datastore,Gcloud Node,我正在尝试捕获事务错误。我有以下代码,这应该会导致错误,因为这些实体已经存在,但控制台中没有输出任何内容: datastore.runInTransaction(function(transaction, done) { transaction.save([ { key: my_key1, method: 'insert', data: {

我正在尝试捕获事务错误。我有以下代码,这应该会导致错误,因为这些实体已经存在,但控制台中没有输出任何内容:

        datastore.runInTransaction(function(transaction, done) {


          transaction.save([
            {
              key: my_key1,
              method: 'insert',
              data: {
                stuff: 'stuff'
              }
            },
            {
              key:  my_key2,
              method: 'insert',
              data: {
                stuff: 'stuff'
              }
            }
          ]);


          console.log('here');
          done(function(err, data) {
            if (err) {
                console.log('err : ' + err);
                transaction.rollback();
               return;
            }
            console.log('no error');
            return;
          });


        });

});

done
未收到回调。将该回调作为
runInTransaction
的第二个参数

var cachedTransaction;
datastore.runInTransaction(function(transaction, done) {
  cachedTransaction = transaction;

  transaction.save([
    {
      key: my_key1,
      method: 'insert',
      data: {
        stuff: 'stuff'
      }
    },
    {
      key:  my_key2,
      method: 'insert',
      data: {
        stuff: 'stuff'
      }
    }
  ]);

  done();
}, function(err) {
  if (err) {
    console.log('err : ' + err);
    cachedTransaction.rollback();
    return;
  }

  console.log('no error');
});

注意:我们正在为此开发更好的API:

done
没有回调。将该回调作为
runInTransaction
的第二个参数

var cachedTransaction;
datastore.runInTransaction(function(transaction, done) {
  cachedTransaction = transaction;

  transaction.save([
    {
      key: my_key1,
      method: 'insert',
      data: {
        stuff: 'stuff'
      }
    },
    {
      key:  my_key2,
      method: 'insert',
      data: {
        stuff: 'stuff'
      }
    }
  ]);

  done();
}, function(err) {
  if (err) {
    console.log('err : ' + err);
    cachedTransaction.rollback();
    return;
  }

  console.log('no error');
});
注意:我们正在为此开发更好的API: