在Javascript中缩写代码/函数
如何在Javascript中缩写函数(特别是websocket)代码 对于每个交易交易所,我有几个文件,它们有不同的语法来运行websocket。从一个主文件中,如何使用缩小的代码从不同的文件调用这些函数 例如:在Javascript中缩写代码/函数,javascript,node.js,Javascript,Node.js,如何在Javascript中缩写函数(特别是websocket)代码 对于每个交易交易所,我有几个文件,它们有不同的语法来运行websocket。从一个主文件中,如何使用缩小的代码从不同的文件调用这些函数 例如: binance.js(exchange 1) main.js const binance = require('../exchanges/binance.js'); (exchange).trade_socket("ETHBTC", async trade => { c
binance.js
(exchange 1)
main.js
const binance = require('../exchanges/binance.js');
(exchange).trade_socket("ETHBTC", async trade => {
console.log(trade);
});
所以基本上,我想做的是使用自定义关键字“trade_socket”来通用地调用任何交易所trade websocket
我在binance.js函数中尝试了这一点,但没有成功:
var temp = client.ws.trades;
return temp;
必须为每个exchange的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);
});
你能提供多一点背景吗?
交换在何处以及如何定义?trade\u socket
在何处以及如何定义?这是在浏览器中运行还是在Node.js运行时运行?您可以尝试temp=client.ws.trades.bind(client.ws)
。这是因为javascript具有动态绑定,但我不完全确定,但我认为在缩小后调用方法是这个问题的重点。我在问题…使用缩小代码的不同文件的函数中没有看到任何缩小?
import exchangeShims = require('./my-shims');
const exchange = exchangeShims['exchangeB'];
exchange.trade_socket("ETHBTC", async trade => {
console.log(trade);
});