0
基於從本網站How To Debug RxJs - A Simple Way For Debugging Rxjs Observables我做了一個新的文件名爲observable-debug-operator.ts
我導入我的應用程序組件與import './observable-debug-operator';
角添加新觀察到的操作
可觀察到的調試,操作文件的內容的信息,下面
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/do';
import { environment } from '../environments/environment';
// add debugging to Observables
Observable.prototype.debug = function (message: string) {
return this.do(
function (next) {
if (environment.observableDebugging) {
console.log(message, next);
}
},
function (err) {
if (environment.observableDebugging) {
console.error('ERROR >>> ', message , err);
}
},
function() {
if (environment.observableDebugging) {
console.log('Completed.', message);
}
}
);
};
declare module 'rxjs/Observable' {
interface Observable<T> {
debug: (...any) => Observable<T>;
}
}
這是按預期工作,我可以訂閱一個可觀察和調試它的控制檯
this.service.methodThatReturnsObservable()
.debug('doing something with an observable')
.subscribe(...do something...);
但是當我跑我的人緣測試中,我得到的錯誤
TypeError: Cannot read property 'debug' of undefined
或
Failed: Uncaught (in promise): TypeError: Cannot read property 'debug' of undefined
TypeError: Cannot read property 'debug' of undefined
我想包括在我的測試規範import 'the/path/to/observable-debug-operator';
但我仍然得到錯誤。有誰知道爲什麼在測試中找不到調試運算符,但在實際代碼中工作正常嗎?
錯誤並沒有說你的調試運算符是未定義的,它更多關於'Observable.prototype'或'this.service.methodThatReturnsObservable'是未定義的。 – cyrix
@cyrix絕對正確。我不知道爲什麼我誤解了這個錯誤。我嘲笑了服務,所以我需要從模擬的方法中返回一個可觀察的事物。現在它工作正常。如果你讓它成爲答案,我會接受它 –