正如标题所说,我试图继续跳过订阅,直到返回的数组长度为> 0
目前我正在尝试以下方法,但获得一个空的[]返回
let sub = this.subscribeUserByUsername(post.username).take(1)
.subscribe(x =>
{
console.log('post username: ', post.username); // works
console.log(x); // shows empty array
try {
if(x[0].uid !== '' && x[0].uid !== undefined && x[0].uid !== null) {
// complete
} catch (ex){
}
finally { sub.unsubscribe(); }
});
我见过其他一些方法,比如: 。跳跃 .skipUntil 等
但我不确定这样做的最佳方法是什么? 我需要在完成后终止订阅以防止重复数据弹出。
如果我只是让订阅继续运行,我可以看到返回的数组有效,但我想在返回一个长度大于1的数组时杀死它。
由于
答案 0 :(得分:0)
您可以使用skipWhile
:
let sub = this.subscribeUserByUsername(post.username)
.skipWhile(v => v.length === 0)
.take(1)
.subscribe(<your-handler>)
.take(1)
位于skipWhile
之后非常重要,因此您需要提前取消订阅。