У меня есть две функции в контракте блокчейна, чтобы получить инвесторов и фонды для адреса, и я попытался сохранить его в Excel.
1-я функция Чтобы получить список инвесторов:
getInvestorsList()
2-я функция Принимает адрес инвестора и возвращает адрес инвестора и средства, сохраненные для этого адреса:
getInvestorsAndBalances(address investorAddress)
Я смогполучить список инвесторов и спонсируемых ими фондов, используя функции "getInvestorsList" и "getInvestorsAndBalances".
Вопрос
- Ниже приведен фрагмент, который преобразуетДанные в excel должны выполняться только тогда, когда функция getInvestorsAndBalances полностью выполняется для всех инвесторов.Но этот код выполняется еще до завершения вызова контракта.Поэтому я не получаю значения из блокчейна в приведенный ниже фрагмент кода.
Как заставить приведенный ниже код ожидать успешного завершения функции getInvestorsAndBalances?
dataSample = dataSample + "]";
console.log("dataSample: " + dataSample);
//var dataSample = [{"address": "abc","balance": "21.22"}];
const xls = new XlsExport(dataSample, 'Example WB');
xls.exportToXLS('export.xls')
Полный код
crowdSaleContractObj.getInvestorsList(function(error, result){
if(!error)
{
for (i=0; i < result.length; i++) {
crowdSaleContractObj.getInvestorsAndBalances(result[i],function(error, result1){
console.log(i);
if(!error)
{
console.log(i + " - Address : " + result1[0]+ ", Balance : " + result1[1]);
element = " {\"address\": " + result1[0] + ",balance:" + result1[1] + "},";
console.log("element: " + element);
dataSample = dataSample + element;
}
else
console.error(error);
});
}
dataSample = dataSample + "]";
console.log("dataSample: " + dataSample);
//var dataSample = [{"address": "abc","balance": "21.22"}];
const xls = new XlsExport(dataSample, 'Example WB');
xls.exportToXLS('export.xls')
}
else
console.error(error);
});