2017-10-30 14 views
0

私はこのようなweb3 contstantを持っています。契約結果のタグを変数に格納

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' } 

iはにconsole.log(試験[0])を介して単一のタグをコンソールたいです。これはを返します。 私のアプローチは、すべての結果タグを個々の変数に格納することです。いくつかの提案が必要です。

答えて

1

then()は、約束の履行の際に呼び出される引数としての機能を取ります。そして、あなたが探している結果オブジェクトだろうとresults[0]['0']はあなたに例えば日付「2017年8月28日」を与えるだろう

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

results[0]:あなたはその後、例えば、配列に値を追加することができます。

+0

はい、これはインスタンス内で動作していますが、私はこれをインスタンスの外にコンソールしたい場合は、データを表示していません。空の中かっこを表示するだけです。大変ありがとう。 – user7421798

0

呼び出しを.then(...)で連鎖すると、返される値はPromise型であり、期待するResultオブジェクト(およびコンソールに書き込まれるもの)ではなく、インデックスでアクセスできません。 詳細については、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/thenを参照してください。

+0

だから、目標に近づくことができる正確な方法は何ですか。私は完全にweb3、ノードと契約で新しいです – user7421798

関連する問題