同步调用与异步调用
JavaScript版本的CCXT库中,所有的方法都是异步的,这些方法返回解析值 为JSON对象的Promise。在CCXT中我们使用现代的async/await语法来操作Promise, 如果你不熟悉这种语法,可以参考MDN。
JavaScript示例代码:
(async () => {
let pairs = await kraken.publicGetSymbolsDetails ()
let marketIds = Object.keys (pairs['result'])
let marketId = marketIds[0]
let ticker = await kraken.publicGetTicker ({ pair: marketId })
console.log (kraken.id, marketId, ticker)
}) ()
Python版本的ccxt库使用async/await语法支持Python 3.5+的异步并发模式。 异步的Python版本使用aiohttp实现纯异步io。在异步模式下所有的属性和 方法名还是一样的,只是大多数方法都有async关键字装饰。如果你希望使用 异步模式,应当链接ccxt.async_support子包,如下例所示:
import asyncio
import ccxt.async_support as ccxt
async def print_poloniex_ethbtc_ticker():
poloniex = ccxt.poloniex()
print(await poloniex.fetch_ticker('ETH/BTC'))
asyncio.get_event_loop().run_until_complete(print_poloniex_ethbtc_ticker())
在PHP版本的ccxt库中,所有的API方法都是同步的。