У меня есть асинхронная функция, которую я вызываю.Функция ожидает моего web3.js sendRawTransaction
.У меня есть console.log
после него, чтобы проверить, действительно ли он ждет.Но он немедленно печатает, прежде чем web3 завершит отправку транзакции.Я подозреваю, что sendRawTransaction
не обещание, и поэтому не может быть вызвано через ожидание.
Вот функция
async function sendImage() {
var count = web3.eth.getTransactionCount(Wallet1);
var rawTransaction = {
"from": Wallet1,
"nonce": web3.toHex(count),
"gasPrice": "0x2540BE400",
"gasLimit": "0x3A980",
"to": imageContract,
"value": "0x0",
"data": imageContractABI.startGame.getData(2, {from: Wallet1}),
"chainId": 0x04
};
var privKey = new Buffer (PrivKey1, 'hex');
var tx = new Tx(rawTransaction);
tx.sign(privKey);
var serializedTx = tx.serialize();
await web3.eth.sendRawTransaction('0x' + serializedTx.toString('hex'), function(err, hash) {
if (!err){
console.log("Image is sent " + hash);
}
else
console.log(err);
});
console.log("after aync await..");
}
Я хочу видеть «после асинхронного ожидания ...», напечатанное после того, как web3 ушел, и до того, как я увижу «изображение отправлено».Но я получаю обратное.