簡體   English   中英

為什么我的角度服務“ then”方法返回值的已解決promise?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM