У меня есть массив URL, для которых мне нужно последовательно выполнить http.get.И, в зависимости от результата, переходите к следующему элементу в массиве.
Например:
var myArray = this.myService.getUrls();
// myArray can be something like this:
// ['http://www.us.someurl.com', 'http://www.hk.anotherurl.com']
// Or...
// ['http://www.us.randomurl.com']
// Or...
// ['http://www.us.someurl.com', 'http://www.hk.notaurl.com', 'http://www.pl.someurl.com', 'http://www.in.boringurl.com]
Когда я выполняю http.get для каждого из них, мой сервер будетответить в его данных что-то вроде строки {isReady: true} или {isReady: false}
Что я хочу, чтобы иметь возможность сделать это для каждого элемента в myArray, выполнить http.get, и еслирезультат этого отдельного вызова isReady = true, не выполняет следующий http.get в массиве.Если isReady = false, перейдите к следующему URL-адресу в массиве.
Я пробовал flatMap, но, похоже, я не могу обойтись без жесткого кодирования URL-адресов:
var myArray = ['http://www.us.someurl.com', 'http://www.hk.anotherurl.com'];
this.http.get('http://www.us.someurl.com')
.map(res => res.json())
.flatMap(group => this.http.get('http://www.hk.anotherurl.com') )
.map(res => res.json())
.subscribe((res) => {
console.log(res);
});
});