![](/img/trans.png)
[英]angular 13: Module not found: Error: Can't resolve 'rxjs/operators'
[英]Angular 6: Module not found error regarding RxJs
我在用
編譯 Angular 6 應用程序時出現錯誤,下面只是第一個
ERROR in ./src/app/web.service.ts
Module not found: Error: Can't resolve 'rxjs/add/operator/toPromise' in
'C:\Node\ang\frontend\src\app'
我的web.service.ts代碼
import { Http, Headers, Response } from '@angular/http';
import 'rxjs/add/operator/toPromise';
export class WebService{
constructor(private http:Http){
}
getMessages(){
return this.http.get("http://localhost:2000/messages").toPromise();
}
}
我的app.module.ts代碼
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
import {MatButtonModule,
MatCardModule,
MatSnackBarModule,
MatToolbarModule,
MatInputModule} from '@angular/material';
import { AppComponent } from './app.component';
import { WebService } from './web.service';
import { MessagesComponent } from './messages.component';
import {HttpModule} from '@angular/http';
@NgModule({
declarations: [
AppComponent, MessagesComponent
],
imports: [
BrowserModule, HttpModule, NoopAnimationsModule, MatButtonModule, MatCardModule, MatSnackBarModule, MatToolbarModule, MatInputModule
],
providers: [WebService],
bootstrap: [AppComponent]
})
export class AppModule { }
我正在從 Lynda.com 視頻教程學習 Angular。 我遵循每一步。 但我得到了錯誤。
注釋行:import 'rxjs/add/operator/toPromise';
您正在使用已棄用的HttpModule
,您應該改用HttpClientModule
建議使用Observables over promises
。 通過轉換為承諾,您將失去取消請求的能力和鏈接 RxJS 操作符的能力。
在您可以使用HttpClient
之前,您需要將 Angular HttpClientModule
導入根模塊。
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
BrowserModule,
HttpClientModule,
],
//.......
修改后的代碼:
import { HttpClient} from '@angular/http';
import {Observable} from 'rxjs';
export class WebService{
constructor(private httpc:Http){}
getMessages():Observable<any>{
return this.httpc.get("http://localhost:2000/messages");
}
}
關於你得到的錯誤
從 rxjs 5.5.0-beta.5+ 開始, toPromise
方法現在是Observable
的永久方法。 您不再需要導入它Reference
由於您正在使用 RXJS 6+,我建議您進行Changes
LIVE DEMO WITH HTTPCLIENT
在 Angular 6 之后,你需要安裝 rxjs-compat 包
npm install --save rxjs-compat
更多信息看https://academind.com/learn/javascript/rxjs-6-what-changed/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.