在 收到 来自 websocket 服务 器 的 消息 时 , 我 想 调用 一 个 promise 函数 , 并 等待 一 个 响应 来 决定 是否 需要 威胁 另 一 个 消息 。
我 尝试 将 一 个 connection.on('message', cb)
Package 成 一 个 Promise , 但 也 没有 用 。 代码 如下 :
let alreadyBought = false
const client = new WebSocketClient()
client.connect('wss://...')
client.on('connect', async (connection) => {
connection.on('message', async event => {
if (event.type === 'utf8') {
const data = JSON.parse(event.utf8Data)
if (!alreadyBought) {
await trigger(data.p) // <--- not working
}
}
})
})
async function trigger(price) {
const order = await exchange.createLimitBuyOrder(config.currency, amount, price)
console.log(order)
alreadyBought = true
}
中 的 每 一 个
如果 我 执行 console.log(event)
, 我 会 得到 这个 , 检查 时间 戳 :
{
d: '{"t":1924698,"p":"1541.86", "T":1662043735929}'
}
{
d: '{"t":1924699,"p":"1541.86","T":1662043735955}' // <-- At the same timestamp
}
{
d: '{"t":1924700,"p":"1541.21","T":1662043735955}' // <-- At the same timestamp
}
{
d: '{"t":1924701,"p":"1540.91","T":1662043735955}' // <-- At the same timestamp
}
格式
1条答案
按热度按时间y1aodyip1#
好的,我终于找到了一个解决方案,通过使用价格锁,而承诺是处理。
我会留一个职位,以备有更好的解决方案。