为什么我的 angular 服务 'then' 方法返回已解决的承诺而不是值?
Why is my angular service 'then' method returning a resolved promise intead of the value?
我不明白为什么 "result" 是已解决的承诺而不是此处的实际值:
searchService.getLink(vm.queryObject).then(function (result) {
console.log(result);
});
getLink()
的代码如下:
function getLink(query) {
return $resource(uriService.searchLink).save(query).$promise;
}
我在其他地方做了非常相似的事情,但我在 then()
回调中获得了值。我错过了什么?
Update 我错了,"result" 是一个 Resource 对象,上面有一个 promise。但问题仍然存在,为什么没有将 promise 的值传递给回调?
我发现这是因为我 return 从服务器获取数据的方式。我只是想 return 来自服务器的一个 id,所以我尝试这样做:
[HttpPost]
[Route("search/link")]
public int Link(SearchCriteria searchCriteria)
{
return _searchService.Save(searchCriteria);
}
但是 $resource 必须要求从服务器 returned 一个对象,所以我将我的 return 类型修改为一个对象,然后该值开始显示为 属性 在那个对象上。
[HttpPost]
[Route("search/link")]
public GenericModel<int> Link(SearchCriteria searchCriteria)
{
return new GenericModel<int> { Data = _searchService.Save(searchCriteria) };
}
GenericModel<T>
只是一个 class 我为此目的包装值。
public class GenericModel<T>
{
public T Data { get; set; }
}
我不明白为什么 "result" 是已解决的承诺而不是此处的实际值:
searchService.getLink(vm.queryObject).then(function (result) {
console.log(result);
});
getLink()
的代码如下:
function getLink(query) {
return $resource(uriService.searchLink).save(query).$promise;
}
我在其他地方做了非常相似的事情,但我在 then()
回调中获得了值。我错过了什么?
Update 我错了,"result" 是一个 Resource 对象,上面有一个 promise。但问题仍然存在,为什么没有将 promise 的值传递给回调?
我发现这是因为我 return 从服务器获取数据的方式。我只是想 return 来自服务器的一个 id,所以我尝试这样做:
[HttpPost]
[Route("search/link")]
public int Link(SearchCriteria searchCriteria)
{
return _searchService.Save(searchCriteria);
}
但是 $resource 必须要求从服务器 returned 一个对象,所以我将我的 return 类型修改为一个对象,然后该值开始显示为 属性 在那个对象上。
[HttpPost]
[Route("search/link")]
public GenericModel<int> Link(SearchCriteria searchCriteria)
{
return new GenericModel<int> { Data = _searchService.Save(searchCriteria) };
}
GenericModel<T>
只是一个 class 我为此目的包装值。
public class GenericModel<T>
{
public T Data { get; set; }
}