Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中缩写代码/函数_Javascript_Node.js - Fatal编程技术网

在Javascript中缩写代码/函数

在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

如何在Javascript中缩写函数(特别是websocket)代码

对于每个交易交易所,我有几个文件,它们有不同的语法来运行websocket。从一个主文件中,如何使用缩小的代码从不同的文件调用这些函数

例如:

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);
});