如何根据条件完成流,同时辐射完成流的价值?
const MAX_VALUE = 6;
const competePredicate = data => data <= MAX_VALUE;
let imitationsOfClientConnection = of( 0, 1, 2, 3, 4, 5 );
imitationsOfClientConnection.pipe(
scan((result, current) => result + current, 0),
// <- what to write here?
).subscribe({
next: data => console.log(`You won: ${ data } points!`),
complete: () => console.log('complete')
});
现在输出到控制台的是-
您赢了:0分!
您赢了:1分! 您赢了:3分! 您赢了6分!
您赢了10分!
您赢了15分!
完成
您需要什么代码才能将输出写入控制台-
您赢了:0分!
您赢了:1分!
您赢了:3分! 您赢了6分!
完成
答案 0 :(得分:0)
takeWhile
应该可以解决问题。
imitationsOfClientConnection.pipe(
scan((result, current) => result + current, 0),
takeWhile(total => total <= MAX_VALUE)
).subscribe(//...