从函数中获取数据[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我是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.js bitcoin
1个回答
0
投票

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();
© www.soinside.com 2019 - 2024. All rights reserved.