在等待调用中脱离异步功能

时间:2019-07-05 00:22:16

标签: node.js asynchronous

好的,所以我正在使用基于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函数的其余部分?但它似乎还会继续吗?

1 个答案:

答案 0 :(得分:1)

因为使用的是await,所以您可以抛弃.then,并直接在同一块中获取result-如果结果存在,则只需{{1} }(return之后,如果这就是您要寻找的逻辑):

_pong