javascript - web3 RPC 连接在没有输出的情况下终止程序
问题描述
我有一个简单的 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 块并打印失败)或继续并打印“通过”。
解决方案
此方法的文档说,您必须提供回调方法或使用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);
}
}())
可能,您收到了运行时错误,但您没有注意到它。
推荐阅读
- mysql - 错误 1062:故障转移后从站上的重复条目
- c# - double.Parse(123.342) System.FormatException: '输入字符串的格式不正确。'
- android - 将视频添加到图库
- visual-studio - 缺少 Visual Studio Clickonce 特定目标选项卡
- python - Python:可选参数,错误的默认值
- python - 有什么方法可以获取 selenium web 元素的 xpath 吗?
- sql-server - 仅在具有 3 个或更多结果的项目时显示
- c# - 如何在 RabbitMQ 中向外部发送确认(消费者)?
- flutter - Flutter:在浮动操作按钮中使用 appBar 小部件而不是 appBar?
- c++ - 当前的草案是否允许形成一个重载集,该集由两个非静态成员声明组成,其中一个具有引用限定符