Node.js-在切换发生更改时调用异步函数

Node.js-在切换发生更改时调用异步函数,node.js,asynchronous,amazon-sns,Node.js,Asynchronous,Amazon Sns,在我的网站上,我有一个切换按钮,它决定一个给定的用户是否会收到来自给定来源的消息。无论何时更改此切换,都需要调用异步函数。但是,如果切换被更改,然后很快再次更改,我的程序必须等待上一个异步调用完成。下面是我的两个调用异步函数的函数 _enable() { let params = determineSubscriptionParams(this.endpoint, this.level); SNS_CLIENT.subscribe(params, (err, data) =&g

在我的网站上,我有一个切换按钮,它决定一个给定的用户是否会收到来自给定来源的消息。无论何时更改此切换,都需要调用异步函数。但是,如果切换被更改,然后很快再次更改,我的程序必须等待上一个异步调用完成。下面是我的两个调用异步函数的函数

_enable() {
    let params = determineSubscriptionParams(this.endpoint, this.level);

    SNS_CLIENT.subscribe(params, (err, data) => {
        if (err) {
            throw err;
        }
        else {
            // do stuff here
        }
    });
}

_disable() {
    let params = {
        SubscriptionArn: this.subscriptionArn
    }

    SNS_CLIENT.unsubscribe(params, (err, data) => {
        if (err) {
            throw err;
        }
        else {
            // do stuff here
        }
    });
}

这两个函数都是类的成员,subscribe和unsubscribe函数都是异步调用

您正在寻找代码关键部分的锁。如果你不想实现你自己的,你可以用它来实现


这将使快速连续发出的第二个请求在第一个请求释放之前无法输入代码的关键部分。

然后需要可取消的请求。或禁用切换,直到第一个请求完成。