Javascript 承诺流量控制
我有三个资源:Javascript 承诺流量控制,javascript,node.js,promise,es6-promise,Javascript,Node.js,Promise,Es6 Promise,我有三个资源: 酒店 地址 形象 一家酒店可以有一个地址,但可以有许多图像。在一次保存所有三张图片时,首先我需要保存酒店详细信息,然后获取酒店id,我应该将其与地址和每张图片关联,并逐个保存 现在,我认为我可以并行保存图像和地址,如果出现故障,我应该能够回滚事务。在保存图像时,我知道我可以使用Promise.all 在给定关系约束的情况下,在保存所有资源的同时,承诺链流应该是什么 让我更清楚地说,我想要的是: A / \ B C 当机器人B和C获得A返回的相同值时。您可以这样做: f
Promise.all
在给定关系约束的情况下,在保存所有资源的同时,承诺链流应该是什么
让我更清楚地说,我想要的是:
A
/ \
B C
当机器人B和C获得A返回的相同值时。您可以这样做:
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);
})
听起来您可以在同一个
Promise.all()
中将地址保存和所有图像保存合并在一起,向我们展示您的尝试。Stackoverflow不是免费的代码编写服务。我们的目标是在代码无法按预期工作时帮助您修复代码,而不是为您工作我也很惊讶,不管怎样,如果我需要新创建的酒店id而不是Done
,该怎么办?