2017-07-10 101 views
-3

我有三個資源:無極流量控制

  1. 酒店
  2. 地址
  3. 圖片

一個酒店可以有一個地址,但許多圖像。在第一次儲存所有三種酒的同時,我需要保存酒店的詳細信息,然後以酒店身份證號碼爲準,我應該將它與地址和每張圖片關聯起來並逐一保存。

現在,我認爲我可以同時保存圖像和地址,如果出現問題,我應該能夠回滾事務。在保存圖像時,我知道我可以使用Promise.all

在給定關係約束條件下保存所有資源的同時應該是Promise鏈流。

讓我更清楚,我想是這樣的:

A 
/\ 
B C 

如果機器人B和C獲得通過A.返回的值相同

+1

聽起來像你可以合併地址保存和所有的圖像保存在同一'Promise.all()' –

+0

告訴我們你已經嘗試過。 Stackoverflow不是免費的代碼寫入服務。目標是幫助您修復**代碼**,當它不能按預期工作時,不會爲您工作 – charlietfl

回答

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); 
    }) 
+0

爲什麼downvote? –

+0

我也很驚訝,無論如何,而不是'完成'我需要新創建的酒店ID? – CodeYogi