帆-如何知道控制器或助手是否已经结束?

时间:2018-08-09 20:25:11

标签: javascript node.js sails.js

我有一个异步功能,如果几秒钟内未发生任何事件,我想完成该功能。我已经超时完成了。代码是这样的:

fn: async function (inputs, exits) {
    let finished = false;

    let ws = await sails.helpers.createWebSocketConnection();

    ws.on('message', async function onMessage(data) {
        finished = true;
        return exits.success(ws);
    });

    // If it's taking too long, return undefined
    setTimeout(function () {
        if (!finished) {
            return exits.success();
        }
    }, 3000);
}

如您所见,我有一个布尔值以避免两次调用该回调,但这似乎并不是正确的方法。有没有更好的方法来知道帆中是否已经调用过exits.success()

0 个答案:

没有答案