Console.log devolviendo 'indefinido' [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo devuelvo la respuesta de una llamada asíncrona? 33 respuestas

¿Por qué esto no funciona?

var names;

$.ajax({
     type : 'POST',
     url : postUrl+"/admin/returnUserJSON",
     success : function(data){
          names = data;
     }
});

console.log(names);

Problema: Console.log está volviendo indefinido.

Respuestas a la pregunta(4)

Su respuesta a la pregunta