好吧,我正在使用基于 Promise 的库处理来自 Memcache 的数据,但我遇到的问题是,如果找到结果,我不知道如何中断异步调用?
我正在使用的代码是:
const _pong = function() {
return socket.emit('aye', {
pong: globals.uuid()
});
};
return socket.on('helo', async function(data) {
socket._uuid = data.uuid;
let key = 'ws-ping:' + data.uuid;
await cache.get(key).then((result) => {
if(result !== undefined) {
_pong();
}
});
......
});
如果使用给定的键找到结果,我基本上需要忽略 socket.on
函数的其余部分?但似乎还在继续?
最佳答案
因为您使用的是 await
,所以您可以放弃 .then
,并在同一 block 中直接获取 结果
- if结果存在,然后只需返回
(在_pong
ing之后,如果这是您正在寻找的逻辑):
return socket.on('helo', async function(data) {
socket._uuid = data.uuid;
let key = 'ws-ping:' + data.uuid;
const result = await cache.get(key);
if (result !== undefined) {
_pong();
return;
}
// ...
});
关于node.js - 在等待调用中中断异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56895270/