Проблема в том, что вы ничего не возвращаете от оператора Rx JS map . Как минимум, вам нужно будет вернуть response
:
return this.http.get(requestURL, {
responseType: 'text'
}).pipe(
map((response: Response) => {
console.log(response);
return response;
})
);
Это будет похоже на Array.prototype.map
и ничего не будет возвращать, у вас, вероятно, будет какая-то ошибка компиляции с точки зрения TypeScript.
На самом деле, map
здесь совсем не нужен, поскольку он используется для преобразования / проецирования / отображения генерируемых значений. Если вы пытаетесь выполнить побочные операции, такие как console.log()
, вы должны использовать вместо этого оператор tap :
return this.http.get(requestURL, {
responseType: 'text'
}).pipe(
tap((response) => {
console.log(response);
})
);
Update: It звучит так, будто вы получаете новую ошибку, касающуюся попытки передать Promise<string>
функции, которая ожидает только string
. Это исходит от response.text()
. Если вам абсолютно необходимо выполнить метод text()
, вы можете использовать такой оператор, как switchMap , чтобы выполнить обещание:
return this.http.get(requestURL, {
responseType: 'text'
}).pipe(
switchMap((response) => response.text()),
map((text) => this.parseData(text))
);
Надеюсь, это поможет!