How can I cancel
Observable -> debounceTime -> mergeMap -> subscribe
flow in mergeMap method?
I want to achieve something like that:
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);
But I get error:
EXCEPTION: You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
I understand that mergeMap must return Observable, Array ..., but I do not want to make request to the server if value == "". How?
Edited:
My first code was (without return 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);
which is the same as call return; but exception is the same, if I call return null, return; or nothing.
Edited for Jai 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);