【发布时间】:2026-01-12 14:10:01
【问题描述】:
我正在尝试通过 kraken-node api 代码获取数据。
我尝试了以下方法:
import KrakenClient from "kraken-api";
const knex = require('knex')(require('../knexfile'))
const kraken = new KrakenClient();
//*********************
//ASYNCH AWAIT EXAMPLE*
//*********************
const tickerAsynch = async function() {
// Get Ticker Info
return kraken.api('Ticker', { pair: 'XXBTZUSD' });
};
tickerAsynch().then(data => console.log(data)).catch(err => console.log(err))
//*****************
//CALLBACK EXAMPLE*
//*****************
// Get Ticker Info
const tickerCallback = function() {
kraken.api('Ticker', { "pair": 'XXBTZUSD' }, function(error, data) {
if (error) {
console.log(error);
}
else {
console.log(data.result);
}
})
};
console.log("Callback: " + tickerCallback())
ASYNCH AWAIT EXAMPLE 只是将 http 请求返回给我:
回调:未定义请求{域:空,_events:{错误: [功能:绑定], 完成:[功能:绑定], 管道:[功能]},_eventsCount:3,_maxListeners:未定义,方法:'POST',标题:{'User-Agent':'Kraken Javascript API 客户端', 主机:'api.kraken.com', “内容类型”:“应用程序/x-www-form-urlencoded”, 'content-length': 13 }, timeout: 5000, callback: [Function], readable: true, writable: true, explicitMethod: true, _qs:
请求参数 { 要求:[通函], lib:{格式:[对象],解析:[功能],字符串化:[功能]}, 使用查询字符串:未定义, 解析选项:{}, stringifyOptions: { 格式: 'RFC3986' } }, _auth: Auth { 要求:[通函], hasAuth: 假的, 发送验证:假, 承载令牌:空, 用户:空, pass: null }, _oauth: OAuth { request: [Circular], params: null }, _multipart: Multipart { 要求:[通函], 边界:'839beaf0-e37d-459b-a879-0d1e2b22aab4', 分块:假, 正文:空},_redirect:重定向{ 要求:[通函], 跟随重定向:真, 跟随重定向:真, 跟随所有重定向:假, followOriginalHttpMethod: false, 允许重定向:[功能], 最大重定向:10, 重定向:[], 重定向跟随:0, removeRefererHeader: false }, _tunnel: 隧道 { 要求:[通函], 代理标头白名单: [ '接受', '接受字符集', '接受编码', '接受语言', '接受范围', '缓存控制', '内容编码', '内容语言', '内容位置', '内容-md5', '内容范围', '内容类型', '联系', '日期', '预计', '最大前锋', '语用', '推荐人', 'te', '用户代理', '通过' ], proxyHeaderExclusiveList: [] }, setHeader: [Function], hasHeader: [Function], getHeader: [Function], removeHeader: [Function], localAddress: undefined, pool: {}, dests: [],
__isRequestRequest: true, _callback: [Function], uri: Url { 协议:'https:', 斜线:真, 身份验证:空, 主机:'api.kraken.com', 端口:443, 主机名:'api.kraken.com', 哈希:空, 搜索:空, 查询:空, 路径名:'/0/public/Ticker', 路径:'/0/public/Ticker', href:'https://api.kraken.com/0/public/Ticker'},代理:null,隧道:true,setHost:true,originalCookieHeader:未定义,
_disableCookies: true, jar: undefined, port: 443, host: 'api.kraken.com', body: 'pair=XXBTZUSD', path: '/0/public/Ticker', httpModule: { Server: { [Function: Server] super: [Object] }, createServer:[功能:createServer], 全球代理: 代理人 { 域:空, _events:[对象], _eventsCount:1, _maxListeners:未定义, 默认端口:443, 协议:'https:', 选项:[对象], 要求: {}, 套接字:{}, 免费套接字:{}, keepAliveMsecs:1000, 保活:假, maxSockets:无穷大, maxFreeSockets:256, 最大缓存会话数:100, sessionCache: [对象] }, Agent: { [Function: Agent] super: [Object] }, 请求:[功能:请求], 获取:[功能:获取] },代理类:{ [功能:代理] super_: { [Function: Agent] super_: [Object], defaultMaxSockets: Infinity } }, agent: Agent { 域:空, _events:{免费:[功能]}, _eventsCount:1, _maxListeners:未定义, 默认端口:443, 协议:'https:', 选项:{路径:空}, 要求: {}, 套接字:{}, 免费套接字:{}, keepAliveMsecs:1000, 保活:假, maxSockets:无穷大, maxFreeSockets:256, 最大缓存会话数:100, _sessionCache:{地图:{},列表:[]}}}
而我通过回调示例得到价格返回:
{ XXBTZUSD:
{ a: [ '4347.99900', '1', '1.000' ],
b: [ '4345.00000', '1', '1.000' ],
c: [ '4354.97000', '0.19747745' ],
v: [ '74.25674323', '10944.61634833' ],
p: [ '4391.05837', '4290.88239' ],
t: [ 314, 31776 ],
l: [ '4264.00000', '4082.99500' ],
h: [ '4468.00000', '4484.29000' ],
o: '4349.98700' } }
在我的 asynch-await 示例中我做错了什么有什么建议吗?
感谢您的回复!
【问题讨论】:
-
您使用的是哪个版本的 kraken-api?
标签: javascript node.js