Have a look into the code snippet
$scope.getSongs = function(keyword){
songServices.getSongList(keyword).then(
function(resp){
$scope.songList = resp.data.songList;
}
);
}
Here getSongList simply returns list of songs from server by an HTTP request.
And in my HTML:
<input auto-focus type="text" placeholder="Enter song ID/Keyword" ng-model="keyword" ng-change="getSongs()">
The problem here is with behaviour of promises, sometimes if some promise takes more time(even in ms.) to get resolved then it shows false data. when you search for 'AKON' lets say promise with first strike 'A' returns last then it refreshes the scope with false data, Is there any way to stop or discard promise which have not been resolved before sending another promise to server, or how can I handle such kind of scenario.
Thanks in advance.
$http calls can be cancelled, by passing a promise in the 'timeout' config option, and resolving that promise.
From the documentation:
timeout – {number|Promise} – timeout in milliseconds, or promise that should abort the request when resolved.
Example:
var canceler = $q.defer();
$http.get(someUrl, { timeout: canceler.promise });
// later: cancel the http request
canceler.resolve();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With