setTimeout(function() {
get_details(user);
}, 18000);
it depends when you invoke the setTimeout:
setTimeout invoked on dom ready - Yes, get_details() will run after 180 sec
setTimout invoked on event (e.g. button click) - Button was clicked --> setTimeout has been invoked --> page was refreshed, the queue of the event loop was cleared and get_details will not be invoked.