Я пытаюсь заполнить таблицу массивом объектов, таких как:
myPacients: {name: string, pAddress: string}[];
myPacients = [
{ "John Doe", "0x0234234..."},
{ "Alex Morgan", "0x2354354..."},
...etc...
];
Но когда я пытаюсь заполнить свою таблицу из клиентского приложения Angular 6, он показывает мне только последний объектчто я пишу это с функцией newPacient()
. Мой Solidity ^0.5.0
код очень хорошо работает в трюфельной консоли.
Моя newPacient()
функция:
async newPacient() {
let _pacientAddress = this.pacientAddress;
try {
const deployedMedBlock = await this.MedBlock.deployed();
await deployedMedBlock.newPacient(_pacientAddress, { from: myAddress });
} catch (e) {
console.log(e)
}
}
Моя getAllPacients()
:
async getAllPacients() {
try {
const deployedMedBlock = await this.MedBlock.deployed();
let medBlockMedicAddresses = await deployedMedBlock.getPacientAddresses({ from: this.model.account });
this.pacientAccounts = medBlockMedicAddresses;
console.log(this.pacientAccounts);
} catch (e) {
console.log(e);
}
for (let i = 0; i < this.pacientAccounts.length; i++) {
this.getUserByAddress(this.pacientAccounts[i]).then((result) => {
this.myPacients = [
{name: result, pAddress: this.pacientAccounts[i]}[i]
];
})
}
}
}
Моя getUserByAddress(userAddress)
функция
async getUserByAddress(userAddress) {
try {
const deployedMedBlock = await this.MedBlock.deployed();
let medBlockUser = await deployedMedBlock.getName(userAddress, { from: myAddress });
return medBlockUser;
} catch (e) {
console.log(e);
}
}
Как мне извлечь все данные из смарт-контракта и заполнить мой внешний массив?