![](/img/trans.png)
[英]Angular: How can I wait for a promise in a service to be resolved before I set the returned value in my controller?
[英]Why is my angular service 'then' method returning a resolved promise intead of the value?
我不明白為什么“結果”是解決的承諾而不是此處的實際價值:
searchService.getLink(vm.queryObject).then(function (result) {
console.log(result);
});
getLink()
的代碼如下:
function getLink(query) {
return $resource(uriService.searchLink).save(query).$promise;
}
我在別處正在做類似的事情,而是在then()
回調中獲取值。 我想念什么?
更新我弄錯了,“結果”是一個有希望的Resource對象。 但是問題仍然存在,為什么諾言的價值沒有傳遞給回調?
我發現這是因為我是如何從服務器返回數據的。 我只是想從服務器返回一個ID,所以我嘗試了這個:
[HttpPost]
[Route("search/link")]
public int Link(SearchCriteria searchCriteria)
{
return _searchService.Save(searchCriteria);
}
但是$ resource必須要求從服務器返回一個對象,因此我將返回類型修改為一個對象,然后值開始顯示為該對象的屬性。
[HttpPost]
[Route("search/link")]
public GenericModel<int> Link(SearchCriteria searchCriteria)
{
return new GenericModel<int> { Data = _searchService.Save(searchCriteria) };
}
GenericModel<T>
只是我為此包裝值的一個類。
public class GenericModel<T>
{
public T Data { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.