web3,松露,nodejs错误:UnhandledPromiseRejectionWarning

Posted

技术标签:

【中文标题】web3,松露,nodejs错误:UnhandledPromiseRejectionWarning【英文标题】:web3, truffle, nodejs error : UnhandledPromiseRejectionWarning 【发布时间】:2018-03-17 04:37:39 【问题描述】:
var     web3            = require('web3'),
    contract        = require('truffle-contract'),
    path            = require('path'),
    MyContractJSON  = require(path.join(__dirname, '../tru_dir/build/contracts/NewCoin.json'));
var     provider        = new web3.providers.HttpProvider("http://localhost:8545");

var     MyContract      = contract(MyContractJSON);

MyContract.setProvider(provider);
MyContract.deployed().then(function(instance)
return instance.returnfive();
)

.then(function(result) 
console.log(result);
, function(error) 
console.log(error);
);

我将此代码设置为调用返回 5 的智能合约函数。 我用松露控制台测试了它,它工作正常。 但是当尝试使用 nodejs 获得相同的结果时,它会崩溃并给出这 2 个错误:

(node:6227) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: Cannot read property 'apply' of undefined
(node:6227) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

对这个问题有任何想法吗?

【问题讨论】:

【参考方案1】:

将 MyContract 定义替换为 const MyContract = artifacts.require("MyContractewCoin")

// You are missing this step before invoking deployer
await deployer.deploy(MyContract) 

const dMyContract = await MyContract.deployed() 
// now you can do stuff like 
let result = await dMyContract.someContractFunction(args)

【讨论】:

以上是关于web3,松露,nodejs错误:UnhandledPromiseRejectionWarning的主要内容,如果未能解决你的问题,请参考以下文章

text 高清钱包松露web3

松露与 Golang Web3

坚固性 |松露 |网络3 |气体限制

代码未在 nodejs 中编译,抛出意外错误(Web3.js)

无法使用 nodejs 安装 web3

使用松露拆箱反应时出现松露拆箱错误