Cómo destruir la promesa no resuelta

Echa un vistazo al fragmento de código

$scope.getSongs = function(keyword){
     songServices.getSongList(keyword).then(
         function(resp){
             $scope.songList = resp.data.songList;
         }
     );
}

Aquí getSongList simplemente devuelve la lista de canciones del servidor mediante una solicitud HTTP.

Y en mi HTML:

<input auto-focus type="text" placeholder="Enter song ID/Keyword" ng-model="keyword" ng-change="getSongs()">

El problema aquí es con el comportamiento de las promesas, a veces si alguna promesa lleva más tiempo (incluso en ms) para resolverse, entonces muestra datos falsos. cuando busca 'AKON', digamos promesa con el primer golpe 'A' devuelve el último y luego actualiza el alcance con datos falsos, ¿Hay alguna forma de detener o descartar la promesa que no se ha resuelto antes de enviar otra promesa al servidor, o cómo ¿Puedo manejar ese tipo de escenario?

Gracias por adelantado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta