如何在 rxjs 中立即中止和 "resolve" 订阅?

how to abort and "resolve" a subscription immediately in rxjs?

rxjs 和 angular2 的新手。如何中止 http 调用和 return observable,这样我就不会在订阅端收到错误消息?当然,如果我在这里 return 一个对象,我们会得到 .searchAlbum(...).subscribe is not a function

public searchAlbum (term:string, queryObject?:any) {

    if( this.abortSearches){
      queryObject.body = null;
      return //what to return here? used to be deferred.resolve(queryObject);
    }

    ...

    return this.http.request( new Request( options ) )
        .map(res => this.extractData(res, queryObject) )
        .catch(this.handleError);
}

据我了解你的情况,你想要 return 一个 Observable,即使 this.abortSearchestrue,因此你不想发出任何实际的 HTTP 请求。但是,您有一些其他功能与此方法相关联,因此您希望它始终 return 一个 Observable。

您可以 return Observable.empty() 这是一个 Observable,它不发出任何值,只是发出完成信号。