类型'Observable <void>'不可分配给类型'Observable <JSON>'

Pra*_*vin 3 angular

  getStepList(): Observable<JSON>  {                  
            this.headers = new Headers();
            this.headers.append('Content-Type', 'application/json; charset=utf-8');                
            let options = new RequestOptions({
                method: RequestMethod.Post,
                url: "FeedbackMaster.aspx/getStepList",                   
                headers: this.headers,
                  body:{log:this.login}
            });
            return this._http.request(new Request(options)).retry(2)
            .map((response: Response)=>this.extractData(response))
            .do(data => {this.temp=data, console.log('getStepList:'+ JSON.stringify(JSON.parse(this.temp.d)))})
            .catch(this.handleError);                  
    }

    extractData(res: Response) {
           let body = res.json();
           return body || { }; //<--- not wrapped with data
     }
          handleError(error: any) {
         console.error('An error occurred', error);
          return Promise.reject(error.message || error);
   }  
Run Code Online (Sandbox Code Playgroud)

................................................... ................................................... ...

错误

[ts]
 Type 'Observable<void>' is not assignable to type 'Observable<JSON>'.
 Type 'void' is not assignable to type 'JSON'.
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题?

Mar*_*idt 5

.map()需要返回一些东西,例如:

.map((response: Response) => { this.extractData(response); return response.json(); })
Run Code Online (Sandbox Code Playgroud)

return response.json()收益率Observable<JSON>。不返回任何东西.map()就变成了Observable<void>