缩写Java中的代码/功能

时间:2019-05-15 23:58:44

标签: javascript node.js

如何在Javascript中缩写功能代码(特别是websocket)?

每个交易交易所都有多个文件,这些文件具有运行Websocket的不同语法。从一个主文件中,如何使用缩小的代码从不同文件中调用这些函数中的任何一个?

示例:

binance.js(交换1)

var client = await loadKeys();
client.ws.trades([symbol], async trade => {
    console.log(trade);
});

main.js

const binance = require('../exchanges/binance.js');

(exchange).trade_socket("ETHBTC", async trade => {
    console.log(trade);
});

因此,基本上,我想做的是使用自定义关键字“ trade_socket”来普遍调用任何交易所交易网络套接字。

我在binance.js函数中尝试了此操作,但没有成功:

var temp = client.ws.trades;
return temp;

1 个答案:

答案 0 :(得分:-1)

您必须为每个交易所的API定义一个互操作层,该层将返回您定义的相同标准API。

假设您有几个公开不同API的第三方库。

const exchangeA = require('exchangeA');
const exchangeB = require('exchangeB');
const exchangeC = require('exchangeC');
const exchangeD = require('exchangeD');
return {
  exchangeA: {
    trade_socket: (sym, cb) => exchangeA.ws.keys(sym, cb)
  }
  exchangeB: {
    trade_socket: (sym, cb) => exchangeB.performTrade(sym).then(cb)
  }
  exchangeC: {
    trade_socket: (sym, cb) => exchangeC.setup().trade(sym, cb)
  }
  exchangeD: {
    trade_socket: (sym, cb) => exchangeD.goofyApi.withSymbol(sym).trade().then(cb)
  }
}

现在您可以选择任意交换,并希望能够调用相同的方法。

import exchangeShims = require('./my-shims');
const exchange = exchangeShims['exchangeB'];
exchange.trade_socket("ETHBTC", async trade => {
    console.log(trade);
});