how can i run it after then ?
В этих случаях вы, возможно, можете использовать некоторое асинхронное управление, например, обещание, потому что использование глобальных переменных не рекомендуется:
function Transaction() {
return new Promise((resolve, reject) => {
let somearray = [];
web3.eth.sendSignedTransaction('0x'+transaction.serialize().toString('hex'))
.on('transactionHash',function(hash){
console.log("thash: " + hash);
}).on('confirmation', (confirmationNumber) => {
console.log('transferToReceiver confirmation: ' + confirmationNumber);
if(confirmationNumber == 1){
somearray.push("Transaction Confirmed");
resolve(somearray)
}
});
});
}
Transaction().then(result => { console.log('results:', result[0]); });
Вы даже можете реализовать его с помощьюasync / await, если вы хотите назначить его следующим образом:
const results = await Transaction();
, оборачивая этот код в асинхронный блок