Javascript rxjs每N次处理一次错误
在我下面的代码中,我每秒都会从摄像机中得到一张脸。如果我认出了用户,我就会得到一个令牌。如果我不能识别用户,我会打印一个错误 问题是,我不想每隔一秒钟就向用户发送带有错误的垃圾邮件。如何在第n次连续故障时打印错误Javascript rxjs每N次处理一次错误,javascript,rxjs,Javascript,Rxjs,在我下面的代码中,我每秒都会从摄像机中得到一张脸。如果我认出了用户,我就会得到一个令牌。如果我不能识别用户,我会打印一个错误 问题是,我不想每隔一秒钟就向用户发送带有错误的垃圾邮件。如何在第n次连续故障时打印错误 subscription = getFaces() .throttleTime(1000) .switchMap(face => { return Observable.fromPromise(authenticateUserFace(face)) .catch(er
subscription = getFaces()
.throttleTime(1000)
.switchMap(face => {
return Observable.fromPromise(authenticateUserFace(face))
.catch(err => {
console.log('Not found') // I want this to happen after 3 consecutive attempts
// But I don't want to retry
// I want a new value from the outer observable
return Observable.empty()
})
})
.subscribe((token) => {
console.log('Found')
console.log(token)
})
只需使用一个计数器变量,并且仅当它是三的倍数时才记录到控制台:
const k = 3; // change this according to your needs
var counter = 0;
subscription = getFaces()
.throttleTime(1000)
.switchMap(face => {
return Observable.fromPromise(authenticateUserFace(face))
.catch(err => {
counter++; // increment counter
if (counter % k == 0) // this is true once every k times
console.log('Not found');
return Observable.empty();
})
})
.subscribe((token) => {
console.log('Found');
console.log(token);
})