首页 > 解决方案 > 从函数中获取数据

问题描述

我是 Stackoverflow 的新成员。因此,如果我还不知道如何将代码放入您所做的设计中,我很抱歉:s

我整晚都在想办法让存款比特币密钥退出该client.initWallet('***', '***', function(err, wallet)功能。

您在console.log(address)楼下看到的工作正常。但就在 之后},我无法访问数据。我真的不知道该怎么办。如果有人知道为什么我不能保持“ address”的价值......

谢谢你的时间:D

const key = '*key*';
const secret = '*secretkey*';

blocktrail = require('blocktrail-sdk');

client = blocktrail.BlocktrailSDK({
    apiKey: key,
    apiSecret: secret,
    network: 'BTC',
    testnet: false
});


client.initWallet('*user*', '*password*',
    function(err, wallet) {
    wallet.getNewAddress(function (err, address) {
      **console.log(address);**
    });
});

标签: node.jsbitcoin

解决方案


Bluebird 可以将你的回调函数转换为返回 Promise 的函数,

const bluebird = require('bluebird');
const key = '*key*';
const secret = '*secretkey*';

async function getWallet(){
    blocktrail = require('blocktrail-sdk');
    client = blocktrail.BlocktrailSDK({
        apiKey: key,
        apiSecret: secret,
        network: 'BTC',
        testnet: false
    });

    var asyncInitWallet = bluebird.promisify(client.initWallet);
    var wallet = await asyncInitWallet('*user*', '*password*');

    var asyncGetNewAddress = bluebird.promisify(wallet.getNewAddress);
    var address = await asyncGetNewAddress();
    console.log('address: ', address);
}
getWallet();

推荐阅读