我发现了类似的问题和不同的建议,但我无法让它发挥作用。有人说你做不到,而另一些人则给出了很长的解决方案来使其发挥作用。它正在被返回且未定义。
服务
filterSubdivisions: (response) => {
var arry = [];
let deferred = Q.defer();
arry = _.filter(response, (item) => {
if (item.status === 'A') {
item.color = 80;
item.status = 'Active';
return item
} else {
item.color = 255;
item.status = 'Future';
return item
}
});
deferred.resolve(arry);
return deferred.promise;
}
服务电话
AuthService.get().then((result) => {
SubdivisionService.getSubdivisions(result.userId, result.token)
.then((response) => {
if (response)
SubdivisionService.filterSubdivisions(response)
})
.then((res) => {
if (res)
SubdivisionService.loopSubdivisions(res)
})
.then((response) => {
if (response)
StorageService.set('Subdivisions', response)
})
.then(() => me.onGoHome())
.catch(error => {
AlertService.error('subdivisions')
.then((error) => ErrorService.post(error))
.then(() => me.onGoHome())
})
})
最佳答案
我不确定为什么你有 filterSubdivisions()
返回一个 promise ,特别是如果你立即解决它而不是执行任何类型的异步操作。无论如何,您永远不会将 .then()
回调附加到该 promise 。
您正在使用过滤后的数组来解析它,但永远不会有回调来获取该数据。
关于javascript - 如何将 Q Promise 与下划线过滤器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37442318/