У меня есть следующие функции:
getNetworkByName(prefix: string): Observable<Network[]> {
return this.http.get<Network[]>(this.Url + '/networks/search?name-prefix=' + prefix)
.catch(handleError); }
а также
getNetwork(id: number): Observable<Network> {
return this.http.get<Network>(this.Url + '/networks/' + id)
.catch(handleError); }
Я хотел бы иметь еще одну функцию, например
getNetworkByNameAndId(prefix: string | number): observable<network[]>, которые объединяют результат предыдущей функции. Я пробовал оператор слияния, но не работал из-за разных типов.
Как это можно эффективно решить без подписки на functions. Мне нужно решить это во фронтенде. В некоторых случаях мое сетевое имя может быть 1 и 1, также сетевой идентификатор может быть внутренне 1, поэтому я хотел бы выполнить поиск на основе имени и идентификатора. Я сделал примерно так:
return this.getNetworkByName(prefix.toString()).pipe(merge(this.getNetwork(parseInt(prefix,10)));
Я получаю ошибку
Type 'Observable<Network | Network[]>' is not assignable to type 'Observable<Network[]>'.
С Уважением
недостаточно информации, ваша 3-я функция говорит, что это может быть и то, и другое, а это означает, что можно будет использовать одну из двух заданных функций ... Как вы ожидаете вызвать обе 1 arg?
В некоторых случаях мое сетевое имя может быть 1 и 1, также сетевой идентификатор может быть внутренне 1, поэтому я хотел бы выполнить поиск на основе имени и идентификатора. Я сделал что-то вроде этого: вернуть this.getNetworkByName (prefix.toString ()). Pipe (merge (this.get Network (parseInt (pre fix, 10)));





Может быть, примерно так:
getNetworkByNameAndId(name : string, id : number): Observable<Network[]> {
return Observable.forkJoin(
getNetworkByName(name),
getNetwork(id)
).map(([a, b]) => [...a, b]);
}
OP упоминает префиксный аргумент ... вы не должны выполнять его работу за него, учитывая, что он не сообщил нам достаточно информации о том, где он застрял
Предоставленный ответ отлично работает, я мог делать то, что хочу, с помощью forkjoin
У вас могут быть разные типы с
merge, опубликуйте свою попытку и давайте посмотрим, что мы можем с этим сделать (см. пример)