我的ngOnInit()中有2个订阅。
在这里,我可以向交易池中添加“交易”。单击“发送”时,它将触发transaction$
订阅并将事务添加到池中。它应该总是只添加一个事务。
这是池的第一次外观:
这是console.logs给我的:这应该总是这样。在10个池中的每个池中推送事务后,它们都应包含1个对象。
单击一个按钮后,获奖者的人数将被订阅。优胜者的奖池应复制到其余奖池中。 现在,当我向池中添加事务时,会发生什么:
事务将被推送到10个池中的每个池。但是,每个池不会被推1次,而是被推10次。
这是console.logs显示的内容:
this.emitTransactionService.transaction$.subscribe(transaction => {
if (transaction !== false) {
for (let i = 1; i < 11; ++i) {
console.log(this.transactionPools[i].dataSource.data);
this.transactionPools[i].dataSource.data.push(transaction);
console.log(this.transactionPools[i].dataSource.data);
}
console.log('Hallo');
this.sendMessage5();
}
}
);
this.emitTransactionService.winningMiner$.subscribe(winningMiner => {
if (winningMiner !== false) {
for (let i = 1; i < 11; ++i) {
this.transactionPools[i].dataSource = this.transactionPools[winningMiner].dataSource;
}
}
});
我尝试了几种方法,但是没有一种起作用。我尝试在每次单击按钮后创建一个新的MatTableDataSource,但这没有用。
当我添加winningMiner$
订阅时,问题也出现了