私は実際にanglejsサービスである私のコードと混同しています。 Promise.allを使用して、サービスの一部である2つの約束事を連結し、その結果を私のコントローラに送信しようとしました。 Promise.allによって返されたオブジェクトは、2つの同じ配列で構成されています。 ここで私のコード、単に明確にすべき:Promise.allの2番目の引数が正確AときPromise.all()は予期しない値を返す
batchModule.service('BatchService', ['$http', '$q', '$log', 'MessageboxService', function ($http, $q, $log, MessageboxService) {
let deferred = $q.defer();
this.loadAll =() => {
promise1 =() => {
$http.get(_restApiPath + "/batch/?processtype=IMPORT_CUSTOMER")
// loadLastFiveBatch('IMPORT_CUSTOMER')
.then(function (response) {
deferred.resolve(response.data);
// datas.push(response1);
// console.log(datas);
}, function (error) {
deferred.reject(error);
$log.error(error);
});
return deferred.promise;
};
promise2 =() => {
$http.get(_restApiPath + "/batch/?processtype=IMPORT_LAB_MARGIN")
// loadLastFiveBatch('IMPORT_LAB_MARGIN')
.then(function (response) {
deferred.resolve(response.data);
// datas.push(response2);
// console.log(datas);
}, function (error) {
deferred.reject(error);
$log.error(error);
});
return deferred.promise;
};
Promise.all([promise1(), promise2()])
.then(values => {
console.log(values);
});
};
}]);
にconsole.log(値)は、IMPORT_CUSTOMER要求によって返さ2つの等しい配列からなるオブジェクトを返しますIMPORT_MARGIN要求によって返される約束。 今日は数時間で作業していましたが、解決策が見つかりません。 私は十分にはっきりしていたと思う、私の英語はあまり良くない。 あなたのお返事ありがとうございます:-)
を使用するchainging考えてみましょう、それだけで1つの値に解決することができますなぜそれがちょっと明らかです。そして、もちろん、最初の段階で[反遅延アンチパターン](https://stackoverflow.com/q/23803743/1048572?What-is-the-promise-construction-antipattern-and-how-to-avoid-it)を避けてください場所! – Bergi