Привет, у меня есть существующий проект Angular 1.6.x, в котором я сделал что-то вроде
var defer1 = $q.defer();
var defer2 = $q.defer();
$http.get(refTrustUrl).then(function (res) {
// some code here
defer1.resolve(true)
}, function () {
});
$http.get(candTrustUrl).then(function (res) {
// some code here
defer2.resolve(true)
}, function () {
});
$q.all([defer1.promise, defer2.promise]).then(function () {
// some code here
})
Теперь мне нужно перенести этот проект на Angular 4/5
, есть ли какая-нибудь работа в Observable
чтобы соответствовать функциональности для $q.all
. Примечание. Я читал о Observable.forkJoin
но не получил, где я сделал что-то вроде:
Observable.forkJoin(
this.http.get(refTrustUrl, {responseType: 'text'}),
this.http.get(candTrustUrl, {responseType: 'text'})
).subscribe(
data=>{
console.log(data,1)
}
)
но это не сработало. Пожалуйста, помогите, спасибо... Я сослался на эту ссылку, чтобы forkJoin
о forkJoin
Ваш код должен быть чем-то вроде этого (из предоставленной вами ссылки).
Observable.forkJoin(
this.http.get(refTrustUrl).map((res:Response) => res.json()),
this.http.get(candTrustUrl).map((res:Response) => res.json())
).subscribe(
data => {
this.refTrust = data[0]
this.candTrust = data[1]
},
err => console.error(err)
);
Можете ли вы попробовать это, и если это сработает?
А также вам не нужно подписываться на поток внутри, как это.
Observable.forkJoin(
this.http.get(refTrustUrl, {responseType: 'text'})
.subscribe(res => {
Вы должны подписаться в конце, когда закончите со всеми преобразованиями.