我有一个简单的NodeJS程序来演示我的问题
var Web3 = require('web3');
var HDWalletProvider = require("truffle-hdwallet-provider");
var provider = new HDWalletProvider("MY MNEMONIC", "HTTP://BAD_CONNECTION.127.0.0.1:7545");
var web3 = new Web3(provider);
(async function getCoinBase() {
try {
var coinbase = await web3.eth.getCoinbase();
console.log('passed');
} catch (err) {
console.log('failed');
console.log(err);
}
}())我使用的是:"truffle-hdwallet-provider":"0.0.6","web3":"^1.0.0-beta.36“
当我运行这个程序时,“通过”和“失败”都没有打印到屏幕上,程序只是结束了。我不明白这是怎么回事,程序怎么能在没有错误的情况下结束(进入catch块并打印失败)或继续并打印“通过”。
发布于 2018-11-02 05:28:10
此方法的Documentation表示,您必须提供回调方法或使用web3.eth.coinbase属性来同步执行此操作。您的示例如下所示:
(async function getCoinBase() {
try {
web3.eth.getCoinbase(function (err, result) {
if (err) {
console.log("web3.eth.getCoinbase error = " + err);
} else {
console.log("web3.eth.getCoinbase " + result);
}
});
console.log('passed');
} catch (err) {
console.log('failed');
console.log(err);
}
}())可能,您收到了运行时错误,但您没有注意到它。
https://stackoverflow.com/questions/53089620
复制相似问题