首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >rxjs -丢弃将来返回的可观察对象

rxjs -丢弃将来返回的可观察对象
EN

Stack Overflow用户
提问于 2017-08-22 14:00:04
回答 2查看 795关注 0票数 16

下面是我的可观察代码:

代码语言:javascript
复制
  var suggestions =
        Rx.Observable.fromEvent(textInput, 'keyup')
          .pluck('target','value')
          .filter( (text) => {
              text = text.trim();
              if (!text.length) // empty input field
              {
                  this.username_validation_display("empty");
              }
              else if (!/^\w{1,20}$/.test(text))
              {
                  this.username_validation_display("invalid");
                  return false;
              }
              return text.length > 0;
          })
          .debounceTime(300)
          .distinctUntilChanged()
          .switchMap(term => {
              return $.ajax({
                type: "post",
                url: "src/php/search.php",
                data: {
                  username: term,
                  type: "username"
                }
              }).promise();
            }
          );
  suggestions.subscribe(
    (r) =>
    {
        let j = JSON.parse(r);
        if (j.length)
        {
            this.username_validation_display("taken");
        }
        else
        {
            this.username_validation_display("valid");
        }
    },
    function (e)
    {
        console.log(e);
    }
  );

我遇到的问题是,当输入为空时,我有另一段代码,它基本上返回一个“error: empty input”,但它被返回的observable所覆盖。所以我想知道,如果text.length为0,是否有一种方法可以忽略所有可观察到的内容,但当文本长度不为0时,也可以重新订阅。

我想过unsubscribe,但不知道该把它放在哪里去尝试。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45809900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档