Javascript 功能上的多重承诺

Javascript 功能上的多重承诺,javascript,angularjs,Javascript,Angularjs,我有这个套接字,当我收到一条消息时,我检查用户,如果用户不存在: 我添加到array和console.log(“嘿,新用户:+results.get(“name”)) 如果已经存在,我只想说: console.log('用户已存在!') 问题是,有时我从同一个用户那里收到2条消息的速度太快,当这种情况发生时,解析用户检查尚未解决,并添加用户2次。我如何承诺在继续之前等待最后一条消息解决 socket.onmessage = function(dataObject) { var obj =

我有这个套接字,当我收到一条消息时,我检查用户,如果用户不存在: 我添加到array和console.log(“嘿,新用户:+results.get(“name”)) 如果已经存在,我只想说: console.log('用户已存在!')

问题是,有时我从同一个用户那里收到2条消息的速度太快,当这种情况发生时,解析用户检查尚未解决,并添加用户2次。我如何承诺在继续之前等待最后一条消息解决

socket.onmessage = function(dataObject)
{
    var obj = JSON.parse(dataObject.data);

    user = obj.user;
    var index = getIndexOf($scope.users, user);

    if(index === false)
    {   
        Parse.getUser(user).then(function(results)
        {   
            $scope.addUser(results.id, results.get("name"), results.get("image")).then(function()
            {   
                console.log("Hey new user:" + results.get("name"))
            }); 
        });
    }
    else
    {
        console.log('User Already Exist!')
    }
};

还可以在调用
Parse
的内部执行
getIndexOf
检查

Parse.getUser(user).then(function(results)
{
    if (getIndexOf($scope.users, results) === false) {
        $scope.addUser(results.id, results.get("name"), results.get("image")).then(function()
        {   
            console.log("Hey new user:" + results.get("name"));
        });
    }
});