2013-11-03 484 views
3

我想在AngularJS中鏈接資源。angularjs中的鏈接資源

目標是資源B在啓動之前等待資源A的結束。

我嘗試這樣做:

var p = $q.when(true); 
p = p.then(function() { 
    return $resource(...).query().$promise; 
}); 
p = p.then(function() { 
    return $resource(...).query().$promise; 
}); 
p = p.then(function() { 
    return $resource(...).query().$promise; 
}); 

的一點是,呼叫不是同步的。

回答

2

有一種方法可以使用$q.all對許多異步呼叫進行分組。該文檔是here

$q.all()將允許您發送所有的查詢,然後等待他們所有的回報,然後再解決合併的承諾。但是,如果您希望按特定順序進行查詢,則這可能無效。

希望這會有所幫助。

+0

這對'$ q.all'正常工作,但你確定'query'返回一個承諾。這在我的腦海裏並不清楚。 「認識到調用$ resource對象方法立即返回一個空引用(依賴於isArray的對象或數組)是非常重要的。一旦數據從服務器返回,現有引用就會填充實際數據。」 – Julio

+0

第二次閱讀文檔時,我認爲你是正確的使用'$ promise'。我會稍微改變一下我的答案。 –