Как импортировать свойство карты rxjs в угловой проект, Ошибка: Свойство «карта» не существует для типа «Наблюдаемый < Object >»?

Хотя блок try / except будет работать, гораздо более быстрый и чистый способ выполнить эту задачу будет состоять в использовании str.isdigit().

while True:
    age = input("Please enter your age: ")
    if age.isdigit():
        age = int(age)
        break
    else:
        print("Invalid number '{age}'. Try again.".format(age=age))

if age >= 18: 
    print("You are able to vote in the United States!")
else:
    print("You are not able to vote in the United States.")
2
задан Shiva Chandel 24 March 2019 в 06:41
поделиться

3 ответа

  • Начиная с RxJS v6 и выше, поддержка вызовов операторов непосредственно на Observable не рекомендуется. Вместо этого используйте Observable.pipe.
  • Начиная с RxJS v6 и выше, поддержка операторов прямого импорта устарела. Вместо этого импортируйте из rxjs/operators.
  • HttpClient (из @angular/common/http) по умолчанию отображает ответы как JSON. Нет необходимости в операторе map (это первое поведение для Http (из @angular/http)).

Ниже приведен исправленный пример:

import { /* imports go here */ } from '@angular/common/http';
// ...

// ...
export class AuthService {
  // ...

  registerUser(user){
    let headers = new HttpHeaders();
    headers.append('content-type','application/json');

    return this.http.post('http://localhost:8080/users/register',user,{headers:headers})
          .catch(this.errorHandler);

  }
}
0
ответ дан Edric 24 March 2019 в 06:41
поделиться

Если вы используете RXJS 6 или выше, использование операторов немного изменилось.

Вы импортируете по:

import { map, catchError } from 'rxjs/operators';

Вы используете карту внутри оператора трубы, например:

return this.http.post('http://localhost:8080/users/register',user,{headers:headers})
      .pipe(
          map(response => {
              // doSomething 
          }),
          catchError(error => {
              this.errorHandler(error);
              return of(`Caught an error: ${error}`);
          })
      );
0
ответ дан SnorreDan 24 March 2019 в 06:41
поделиться

Если вы используете RXJS 6 или выше, вы должны передать операцию

 this.http.post('http://localhost:8080/users/register',user,{headers:headers})
 .pipe(map(response => {
   // do something with response and return it
 })
 catchError(this.errorHandler)
  );

также, если вы используете HttpClient вместо Http, тогда нет необходимости в response.json() как ответ будет десериализован JSON.

0
ответ дан Joel Joseph 24 March 2019 в 06:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: