Web3js
web3.eth.getBlock 沒有被觸發
基本上,我想獲取第一種方法的回調結果以獲取每個索引值,並將其傳遞給第二種方法以掃描該值,在這種情況下是一個乙太坊交易來獲取輸入值。問題是未觸發名為“cb”的回調。
程式碼:
var tx; web3.eth.getBlock(6339515, function(err, result){ for(var i = 0; i <= result.transactions.length; i++){ tx = result.transactions[i]; getInputTransaction(tx) .then(function() {} ) .catch(function(error) { console.log('error: \n' + err); }); } }) async function getInputTransaction(tx) { web3.eth.getTransaction(tx, function(err, cb){ console.log('got here'); let decodeInput = web3.utils.hexToAscii(cb.input); decodeInput = decodeInput.split("_").pop(); if(!err){ console.log(cb); console.log('\nInput decoded: ' + '\u001b[1;32m' + decodeInput + '\u001b[0m'); }else{ console.log('error: ' + error); }} ) }
我在這裡想念什麼?
傳遞給的回調
getBlock
在 web3.js v1.2.1 下觸發得很好。您可能想要解決的一些附帶問題:
- 全域
var tx
似乎是多餘的- 函式
getInputTransaction
不需要聲明async
- 在傳遞給的回調中
getBlock
,確保err == null
在使用之前result
- 在傳遞給的回調中
getTransaction
,確保err == null
在使用之前cb