我需要你的一些错误处理方面的帮助。我使用的是外部库,但不知道错误发生了什么。 这是我的代码:
//file name = playground.js
var ccxt = require("ccxt");
ccxt.exchanges.map(r => {
let exchange = new ccxt[r]();
let ticks = exchange
.fetchTickers()
.then(res => {
console.log(res);
})
.catch(e => {
console.log(e);
});
});
要正确执行,您需要通过npm:ccxt
安装外部库:npm i ccxt --save
我收到以下错误:
.../node_modules/ccxt/js/base/Exchange.js:407
throw new NotSupported (this.id + ' fetchTickers not supported yet')
^
Error: _1broker fetchTickers not supported yet
at _1broker.fetchTickers (.../node_modules/ccxt/js/base/Exchange.js:407:15)
at ccxt.exchanges.map.r (.../playground.js:41:6)
at Array.map (<anonymous>)
at Object.<anonymous> (.../playground.js:38:16)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
基本上,图书馆帮助我的是:
在我的示例中,返回的错误与服务器不支持我正在使用的功能的事实有关。用简单的话来说: 我发出了server1可能能够处理的请求,但是server2还没有能够响应。
代码中的ccxt.exhanges
返回由库处理的不同服务器的数组。
问题不在于我得到了错误......我没有从每个服务器获取信息,但是我的功能一旦出现错误就停止了。 .map
循环并没有一直到最后......
ccxt publishes some information on Error Handling但我不知道我能用它做些什么(在那个对不起的人那里做菜)。
我希望我的问题足够明确,而且还没有被问过!
提前感谢您的帮助!
答案 0 :(得分:4)
这是一个稍好的版本:
var ccxt = require("ccxt");
ccxt.exchanges.forEach(r => {
let exchange = new ccxt[r]();
if (exchange.hasFetchTickers) { // ← the most significant line
let ticks = exchange
.fetchTickers()
.then(res => {
console.log(res);
})
.catch(e => {
console.log(e);
});
}
});
答案 1 :(得分:1)
请检查一下这是否有效。我将map
替换为forEach
,因为您要做的就是通过交换数组循环。
//file name = playground.js
var ccxt = require("ccxt");
ccxt.exchanges.forEach(r => {
let exchange = new ccxt[r]();
try {
let ticks = exchange
.fetchTickers()
.then(res => {
console.log(res);
})
.catch(e => {
console.log(e);
});
} catch(err) {
// PRINT THE err IF NEEDED
console.log("CONTINUING THE LOOP BECAUSE fetchTickers is not supported");
}
});