Мое приложение имеет 2 экрана. Экран с 1 дилером, экран с 2 игроками. Экран дилера управляет игрой. Игроки могут претендовать на победу, нажав кнопку. Запись создается в БД при нажатии кнопки выигрыша заявки. Экран дилера постоянно вызывает API, который получает все выигрышные заявки и отображает на экране. Дилер может принять / отклонить претензию, нажав кнопку. Нажатие кнопки «принять / отклонить» в основном обновляет статус записи в БД. Это работает для первых 5-6 обновлений, а затем все зависает, и мое приложение перестает работать.
Что здесь не так? Есть ли какие-либо ресурсы, которые мне нужно выпускать после каждого обновления?
//accept/reject win claim API
router.patch('/winupdate/:ID', async(req, res, next)=>{
try {
const win = await Win.findOne({_id: req.params.ID})
win.status = req.body.status
await win.save()
}catch {
console.log("error while winupdate");
}
});
//win accept/reject service
updWinClaim(claimResult, _id): Observable<any> {
console.log("updWinClaim called for"+_id);
return this.http.patch('api/winupdate/'+_id,claimResult);
}
//retrieve all win claims
getWinClaimss(p1) {
console.log ("getWinClaimss-1 called");
const source = timer(1,1000);
const subscribe = source.subscribe(
x => {this.winService.getWinClaimsByGame(p1)
.subscribe(
(data) => {this.winClaims = data;
console.log ("getWinClaimss-2 called");
return this.winClaims;
});
});
}
//code that calls update service
winClaimRseult(_id,result){
//console.log ("winClaimResult called with result= "+result);
let newStatus = {
id: _id,
status: result
};
this.winService.updWinClaim(newStatus,_id)
.subscribe(
error => alert(error)
);
}