angular 5.2.0でc3棒グラフを作成しました。すべて正常に機能しています。しかし、npm run test
でカルマとジャスミンを使用してテストを実行したいだけです。しかし、以下の問題。rxjs関数に関連しているといいのですが、エラーコアがわかりません。誰かがこれを解決するのを手伝ってください。
TypeError: _this.handler.handle is not a function
at MergeMapSubscriber.project (http://localhost:9876/_karma_webpack_/webpack:/C:/Workspace/datawens-master/node_modules/@angular/common/esm5/http.js:1466:80)
at MergeMapSubscriber.webpackJsonp.../../../../rxjs/_esm5/operators/mergeMap.js.MergeMapSubscriber._tryNext (http://localhost:9876/_karma_webpack_/webpack:/C:/Workspace/datawens-master/node_modules/rxjs/_esm5/operators/mergeMap.js:128:1)
at MergeMapSubscriber.webpackJsonp.../../../../rxjs/_esm5/operators/mergeMap.js.MergeMapSubscriber._next (http://localhost:9876/_karma_webpack_/webpack:/C:/Workspace/datawens-master/node_modules/rxjs/_esm5/operators/mergeMap.js:118:1)
at MergeMapSubscriber.webpackJsonp.../../../../rxjs/_esm5/Subscriber.js.Subscriber.next (http://localhost:9876/_karma_webpack_/webpack:/C:/Workspace/datawens-master/node_modules/rxjs/_esm5/Subscriber.js:92:1)
at ScalarObservable.webpackJsonp.../../../../rxjs/_esm5/observable/ScalarObservable.js.ScalarObservable._subscribe (http://localhost:9876/_karma_webpack_/webpack:/C:/Workspace/datawens-master/node_modules/rxjs/_esm5/observable/ScalarObservable.js:51:1)
at ScalarObservable.webpackJsonp.../../../../rxjs/_esm5/Observable.js.Observable._trySubscribe (http://localhost:9876/_karma_webpack_/webpack:/C:/Workspace/datawens-master/node_modules/rxjs/_esm5/Observable.js:172:1)
at ScalarObservable.webpackJsonp.../../../../rxjs/_esm5/Observable.js.Observable.subscribe (http://localhost:9876/_karma_webpack_/webpack:/C:/Workspace/datawens-master/node_modules/rxjs/_esm5/Observable.js:160:1)
at MergeMapOperator.webpackJsonp.../../../../rxjs/_esm5/operators/mergeMap.js.MergeMapOperator.call (http://localhost:9876/_karma_webpack_/webpack:/C:/Workspace/datawens-master/node_modules/rxjs/_esm5/operators/mergeMap.js:92:1)
at Observable.webpackJsonp.../../../../rxjs/_esm5/Observable.js.Observable.subscribe (http://localhost:9876/_karma_webpack_/webpack:/C:/Workspace/datawens-master/node_modules/rxjs/_esm5/Observable.js:157:1)
at FilterOperator.webpackJsonp.../../../../rxjs/_esm5/operators/filter.js.FilterOperator.call (http://localhost:9876/_karma_webpack_/webpack:/C:/Workspace/datawens-master/node_modules/rxjs/_esm5/operators/filter.js:61:1)
App.module.tsに次の変更を加えることで、この問題を解決することができました。お役に立てれば。
import { HttpClient } from '@angular/common/http';
import { HttpClientModule } from '@angular/common/http';
...
...
@NgModule({
declarations: [
MyApp,
HomePage,
CameraPage,
],
imports: [
BrowserModule,
// HttpClient,
HttpClientModule,
HttpTestingController
を使用するようにテストを変換しようとしたときに、この問題に遭遇しました。 This answerは単に問題を抑制し、コンソールに出力します。以下の私の解決策について私がまだ理解していないことがたくさんありますが、うまくいけばそれが誰かを助けることができます。
私のアプリケーションの問題は、HttpHandler
リストにproviders
を提供していたことでした。これにより、スタックトレースの_this.handler
の問題のある行でhttp.js
がHttpHandler
になりました。
var /** @type {?} */ events$ = concatMap.call(of(req), function (req) { return _this.handler.handle(req); });
TestBed.configureTestModule
のプロバイダーからHttpHandler
を削除したところ、_this.handler
は適切なHttpInterceptorHandler
関数を持つhandle
でした。
述べられているように、エラー処理なしのサブスクライブがこれを引き起こす可能性があるようです ここ 。そのリンクの答えは次の例を提供します:
user_login() {
this.userService.login(credentials).subscribe((res) => {
console.log(res);
}, (error) => {
console.log(error);
});