功能上的多个承诺

Multiple promises on function

本文关键字:承诺 功能上      更新时间:2023-09-26

我有这个套接字,当我收到消息时,我检查用户,如果用户不存在:我添加到数组和console.log("Hey new user:" + 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"));
        });
    }
});