我有两个表“A”和“B”。我想在表“B”中创建一行,其中包含表“A”的主键,整个操作应该是原子的。
function test(data, res) {
let query1 = knex.insert([data], "id").into("A").toString();
let query2 = "";
db.tx(function (t) {
return this.batch([
t.one(query1).then(function (id) {
query2 = knex.insert({A_id:id, x:x, y:y}).into("B").toString();
t.none(query2).catch(function (error) {
console.log(error); // want to pass this error to next catch block
});
})
]);
}).then(function () {
console.log("success");
}).catch(function (error) {
console.log(error);
});
}
在这里,每当嵌套承诺出现错误时,我想拒绝父承诺并将该错误传递给父承诺。