我正在使用 truffle deployer 来部署我的 solidity 合约:
module.exports = function(deployer, network) {
...
}
我想在此迁移过程中将一些数据存储在链上。通过使用 promise 回调参数并调用合约上的一些函数,数据的基本存储正常工作。但我需要做一些更复杂的事情,如以下代码片段中所述:
deployer.deploy(A).then(instance => {
instance.addB(id, some params ...).then(result => {
// result is not the added B -> using getB() to load B
instance.getB(id).then(instanceB => {
instanceB.addC(id, some params ...);
})
});
})
问题是内部函数没有正确执行。 instance.addB()
确实将 B 正确存储到链中。但 C 从未存储到链中,我不明白为什么。
此外,如果我将 console.log('some text')
添加到内部函数,它不会打印到控制台。
有人知道如何解决这个问题吗?
最佳答案
使用“await/async”代替 promise 回调。
关于javascript - 如何在松露迁移脚本中使用松露部署程序嵌套 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65098490/