title: Return not stopping function
body: <p>I have the following code </p>
  
  <pre><code>        insertcontact(root, args) {
          var finalresult = '';
          var soap = require('soap');
          var url = 'http://192.168.100.2/setlead/webservice.asmx?wsdl';
          var soapargs = {
              contacto: args.contacto, token: args.token, PrimeiroNome: args.PrimeiroNome, Apelidos: args.Apelidos, Email: args.Email, Telefone: args.Telefone, Origem: args.Origem
          };
          soap.createClient(url, function (err, client) {
              if (err) {
                  console.log(err);
                  finalresult = err
                  return { contacto: "error cliente" };
              }
              else {
                  client.OperationDetail(args, function (err, result) {
  
                      console.log(result);
                      return { token: result };
                  });
              }
          });
          return {
              contacto: args.contacto,
              PrimeiroNome: args.PrimeiroNome,
              token: args.token,
              Apelidos: args.Apelidos,
              Email: args.Email,
              Telefone: args.Telefone,
              Origem: args.Origem
          };
      }
  }
  </code></pre>
  
  <p>The operation does not trigger any error and I do receive the result in the console log. But I don't receive the return declared right after that part. The function goes on and I receive the last return declared. Shouldn't it stop at the return result?</p>