变量中的存储协定结果标记



我有一个web3常量,看起来像这样。

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

这会返回这样的结果。

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])控制台单个标记时这将返回未定义我的方法是将每个结果标记存储在其单个变量中。需要一些建议。

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"。

通过用.then(…)链接调用,返回值的类型为Promise,而不是您期望的Result对象(以及写入控制台的内容),并且不能通过索引访问。看见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then了解更多信息。

最新更新