我有一个返回承诺的服务。我想检查返回的值是否为空对象。我怎样才能做到这一点。我想我需要以某种方式从promise对象中提取返回的值。
这是我的资源:
app.factory('Auth', ['$resource',
function($resource) {
return $resource('/user/identify', {}, {
identify: {
url: '/user/identify'
},
});
}
]);
然后在服务中:
Auth.identify(function(data) {
// This always passes since data contains promise propeties
if (!_.isEmpty(data)) {
}
});
数据控制台日志提供:
Resource
$promise: Object
$resolved: true
__proto__: Resource
当对象不为空但我想要更通用的方法时,我可以检查预期的属性。
答案 0 :(得分:0)
要解包返回值,您可以直接访问承诺:
Auth.identify()
.$promise
.then(function(data) {
if (!_.isEmpty(data)) {
// ...
}
});
答案 1 :(得分:0)
你这么近。你不应该拨打回复#34;数据"当它实际上是一个 Resource 对象时,它看起来很像你发布的Resource
对象:
$resource('/api/...').get({...}).then(function(response) {
if (response.data) {
// the response has a data field!
}
}
// note: this is using query(), which expects an array
$resource('/api/...').query({...}).then(function(response) {
if (response.length > 0) {
// the response data is embedded in the response array
}
});