我有三个资源:
酒店可以有一个地址,但有很多图片。在首先保存所有三个的同时,我需要保存酒店详细信息然后获取酒店ID,我应该将其与地址和每个图像相关联并逐个保存。
现在,我认为我可以并行保存图像和地址,如果出现故障,我应该能够回滚事务。保存图像时,我知道我可以使用Promise.all
。
在给定关系约束的情况下保存所有资源的同时,Promise链流应该是什么。
让我更清楚一点,我想要像:
A
/ \
B C
机器人B和C获得A返回的相同值。
答案 0 :(得分:0)
你可以这样做:
function createHotel(data) {
// Create your hotel
}
function createAddresses(addresses, hotelId) {
// Create addresses with hotelId
}
function createImages(images, hotelId) {
// Create images with hotelId
}
createHotel({ name: 'Test' }) // I don't know your structure, this is just placeholder
.then(function(hotel) {
return Promise.all([
createAddresses(addresses, hotel.id),
createImages(images, hotel.id)
]);
})
.then(function() {
// Everything was created successfully
console.log('Done!');
})
.catch(function(err) {
// Rollback here
console.log(err);
})