Преобразование функции из RxJS v5.x в v6 - PullRequest
0 голосов
/ 06 сентября 2018

Я начал с шаблона Angular 5 и преобразовал его в Ang 6. https://github.com/mmacneil/AngularASPNETCore2WebApiAuth

Я знаю, что RxJS изменился, например. RxJS v5.x до v6. Итак, как мне преобразовать этот код в v6, если .map полностью изменен.

register(email: string, password: string, firstName: string, lastName: string,location: string, gender:string, birthDate:any): Observable<UserRegistration> {
let body = JSON.stringify({ email, password, firstName, lastName,location,gender,birthDate });
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });

return this.http.post(this.baseUrl + "/accounts", body, options)
  .map(res => true)
  .catch(this.handleError);
}

Регистрация пользователя

export interface UserRegistration {
email: string;  
password: string;
firstName: string;
lastName:  string;
location: string;
birthDate: any;
gender: string;

}

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

используйте оператор трубы. замените catch на catchError

return this.http.post(this.baseUrl + "/accounts", body, options)
  .pipe(
     map(res => true),
     catchError(this.handleError)
   )
}
0 голосов
/ 06 сентября 2018
return this.http.post(this.baseUrl + "/accounts", body, options).pipe(
  map(res => true),
  catchError(this.handleError)
}

Стоит знать, что если вы не хотите конвертировать весь свой код RxJ с 5 до 6, теперь вы можете установить rxjs-compat, который будет поддерживать обе версии (при условии, что у вас также установлено 6)

Когда вы обновляете ng5 до ng6 с помощью ng update, вы автоматически устанавливаете rxjs-compat. См. https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4#7a6c для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...