将合约结果标签存储在变量中

Store contract results tag in a variable

我有一个 web3 conststant 看起来像这样。

const test = contract_instance.methods.getPost(15).call().then(console.log);

这个 returns 结果是这样的。

Result {
  '0': '2017-08-28',
  '1': '19:18:04.986593',
  '2': '07:17:00',
  '3': '11112323',
  '4': '12',
  date: '2017-08-28',
  login_time: '19:18:04.986593',
  logout_time: '07:17:00',
  login_device_id: '11112323',
  user_id: '12' }

现在,当我想通过 console.log(test[0]); 这个 returns undefined[= 来控制单个标签时20=] 我的方法是将每个结果标签存储在其单独的变量中。需要一些建议。

通过使用 .then(...) 链接调用,返回值是 Promise 类型,而不是您期望的结果对象(以及写入控制台的内容)并且无法通过索引访问。 有关详细信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then

then() 将一个函数作为参数,在实现承诺时调用。然后您可以将该值添加到数组中,例如:

var results = []
contract_instance.methods.getPost(15).call().then(function(value){
   console.log(value)
   results.push(value)
});

results[0] 将是您要查找的结果对象,例如 results[0]['0'] 将为您提供日期“2017-08-28”。