我怎樣才能取消mergeMap方法Angular2 - 取消流:可觀察 - > debounceTime - > mergeMap - >訂閱
Observable -> debounceTime -> mergeMap -> subscribe
流?
我想達到這樣的事情:
var request = this.listPartners.filterChange.asObservable()
.debounceTime(300)
.mergeMap(value =>
{
if (value != "")
return this.partnersService.list({ filter: value }) //call http get
return null;
});
if (request)
request.subscribe(partners => this.partners = partners);
,但我得到的錯誤:
EXCEPTION: You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
我明白mergeMap必須返回可觀察,陣......,但我不希望向服務器請求如果value == ""
。怎麼樣?
編輯:
我的第一個代碼是(不返回NULL):
var request = this.listPartners.filterChange.asObservable()
.debounceTime(300)
.mergeMap(value =>
{
if (value != "")
return this.partnersService.list({ filter: value })
});
if (request)
request.subscribe(partners => this.partners = partners);
這是一樣的通話return;
但例外的是一樣的,如果我叫return null
,return;
或全無。
編輯的宰asnwer:
var request = this.listPartners.filterChange.asObservable()
.debounceTime(300)
.mergeMap(value =>
{
if (value != "")
return this.partnersService.list({ filter: value })
return;
});
console.log("request", request); //this is not called if (value == "")
if (request)
request.subscribe(partners => this.partners = partners);
這是行不通的。我得到了同樣的錯誤:你提供'未定義'... – Makla
你可以登錄'請求'看看它的日誌? – Jai
沒有,因爲異常被調用。查看我編輯的帖子以獲取源代碼。 – Makla