#javascript #solidity #truffle
#javascript #надежность #truffle
Вопрос:
Я использую 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')
во внутреннюю функцию, она не будет выведена на консоль.
Кто-нибудь знает, как решить эту проблему?
Ответ №1:
Используйте «await / async» вместо обратных вызовов promise.