私は異なる提案で同様の質問を見つけましたが、動作させることができません。あなたはそれをすることができないと言う人もいますし、他の人はそれを働かせるために非常に長い解決策を与えていると言う人もいますそれは返され、未定義です。アンダースコアフィルタでQ promiseを使用する方法
サービス
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'は約束を返しますが、決して' .then'コールバックを付けません。さらに、あなたはすぐにその約束を解決しているのですから、最初にそこで延期されていたのですか?あなたは何をしようとしているのか、あなたが期待した通りに働いていないのかを説明できますか? –
私はちょうどコードを更新しました。私はそれを信じていません! – texas697
それで、問題は 'filterSubdivisions'から返された約束に' .then'を付けることはありませんでしたか? –