程序偶尔会出错提示:SyntaxError: invalid json (at offset 1) at main (__FILE__:27) 并中断
根据错误提示应该是 client.read() 获取的data数据出错了 JSON无法处理 我这样写容错可以吗?
var data = JSON.parse(msg)
if (!data) {
data = JSON.parse(msg)
}
没那么复杂,在main函数之前设置个全局变量 data = {btc:{buy:0,buyamout:0},eth:{buy:0,buyamout:0}}类似的结构
2020-03-23 10:22:08
flyju
function main() {
var client = Dial("wss://api.aex.zone/ws/v1|reconnect=true");
client.write('{"cmd": {"type": 2},"type": 1,"pairs": [{ "market": "cnc", "coin": "eth" }]}')
while (true) {
var msg = client.read();
var data = JSON.parse(msg)
var type = data.cmd.type
if (type === 1) {
var CNCBuy = data.bids[0].price
var CNCBuyamount = data.bids[0].amount
var CNCSell = data.asks[0].price
var CNCSellamount = data.asks[0].amount
}
Log(CNCBuy)
/*无法跨域调用变量 而且如果关注多个交易对 还需要判断其它条件才能筛选数据 涉及到后续的交易逻辑判断 需要跨域的变量就更多了 更复杂了 搞了一天了 好累啊*/
}
}
2020-03-21 21:58:24
小草
先判断if('bids' in data),刚开始可能会返回其他数据,进阶教程里这种例子很多
2020-03-21 14:24:39
flyju
无法提取bids数组中的对象 var bids = data.bids[0] 报错 TypeError: cannot read property 0 of undefined at main (__FILE__:9)
exchange.GetDepth(); 获取的深度数据都可以
2020-03-21 13:49:42
小草
看了论坛进阶教程了吗,有介绍如何连接
2020-03-21 09:26:53
flyju
原来是这样啊 帮了我大忙 非常感谢(鞠躬)AEX官方的文档写的是真的垃圾 说的不明不白的
2020-03-21 11:55:52
flyju
Log出来的要不是空白 要不就是{} 没有深度数据 文档上也没说数据是压缩的啊
function main() {
var client = Dial("wss://api.aex.zone/ws/v1")
var msg = client.read()
//var data = JSON.parse(msg)
Log(client)
Log(msg)
//Log(data)
}
client 为空白 msg 为{} 用JSON.parse处理就出错