return
имеет смысл только в синхронных функциях. Вот так:
function calc (a, b) {
return a + b;
}
var c = calc (2, 2); // 4
В асинхронных функциях return не имеет смысла, так как на момент выполнения кода, ничего не возвращается.
Подумайте сами, в вашем случае, до наступления события мыши mousemove может пройти очень много времени.
По этому с асинхронным кодом работают под другому. Вот пример на коллбэках:
document.addEventListener("mousemove", function (e) {
var coord = [];
coord[0] = e.clientX+'px';
coord[1] = e.clientY+'px';
next(coord); // вызов коллбэка
});
function next (coord) {
console.log(coord);
}
Помимо коллбэков существуют и другие подходы, например
обещания. В jQuery есть
кроссбраузерная реализация.