Skip to content

Functions not synchronous #34

@muuvmuuv

Description

@muuvmuuv

Hey I#m currectly working on an MEAN-Stack project and using node-teamspeak for pulling some information about specific clients. The problem is I cant return a valid result, because the function are asyncronous.

Maybe some one knows a better solution or add this functionality to the repo.

Here the code:

function CompareTeamspeakClients(forumUsers) {
  var deferred = Q.defer();
  var cl = new TeamSpeakClient("127.0.0.1");
  

  cl.send("login", {client_login_name: "serveradmin", client_login_password: "M+h8YzUA"}, function(err, response, rawResponse){
    if (err) deferred.reject(err);

    cl.send("use", {port: 9987}, function(err, response, rawResponse){
      if (err) deferred.reject(err);

      forumUsers.forEach(function(user, index){
        cl.send("clientdbfind", ["uid"], {pattern: user.tsid}, function(err, response, rawResponse){
          if (err) {
            deferred.reject(err);
          } else {
            cl.send("clientdbinfo", {cldbid: response.cldbid}, function(err, response, rawResponse){
              if (err) deferred.reject(err);
              
              forumUsers[index]['tsdbid'] = response.client_database_id;
              forumUsers[index]['tsnickname'] = response.client_nickname;
              forumUsers[index]['tslastconnected'] = response.client_lastconnected;
            });
          }
        });
      });
    });
  });
  
  deferred.resolve(forumUsers);

  return deferred.promise;
}

Thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions