2016-07-30 90 views
0

我有一個角廠和一個控制器在下面的格式。我正在調用免費註冊課程功​​能來更新Firebase數據庫。但是在firebase手冊中,它說update()可以返回一個Promise,您可以使用它來知道寫入提交到數據庫的時間。 在我的情況下,可能會有更新不會被提交的情況,但是我想抓住它。我正在嘗試此代碼,但現在正在工作。firebase更新承諾結果

.controller(...){ 
CourseFact.RegisterFreeCourses(...).then(function(value){ 
        ...success 
       }).catch(function (e) { 
        ...fail 
          }); 
        }) 
        } 
    .factory('CourseFact'... 
    { 
      return { 
       RegisterFreeCourses:{ 
        updates[.../...] = postDataPlayer; 

        return firebase.database().ref().update(updates); 
       } 
      } 
    } 

我該如何解決這個問題,或者是否有更好的例子?

+0

也許嘗試的捕獲而不是另一個匿名函數這樣: 然後(成功,錯誤); 函數成功(響應){} 函數錯誤(響應){} – vodich

+0

你是什麼意思,它不工作?也請顯示調用代碼... –

+0

@vodich謝謝你的工作 –

回答

0

錯誤響應已經在承諾鏈中,因此您不必捕獲它。您只需指定成功和錯誤的功能,一旦承諾得到解決,他們將被調用/拒絕

.then(successCallback, errorCallback); 
function successCallback(response){ 
    //do something 
} 
function errorCallback(error){ 
    //do something else 
}