@@ -411,11 +411,10 @@ angular.module('datatables.instances', [])
411
411
function dtInstances ( $q ) {
412
412
var _instances = { } ;
413
413
// Promise for fetching the last DT instance
414
- var _deferLastDTInstances = null ;
414
+ var _deferLastDTInstance = $q . defer ( ) ;
415
415
var _lastDTInstance = null ;
416
416
// Promise for fetching the list of DT instances
417
- var _deferDTInstances = null ;
418
- var _dtInstances = null ;
417
+ var _deferDTInstances = $q . defer ( ) ;
419
418
return {
420
419
register : register ,
421
420
getLast : getLast ,
@@ -428,41 +427,34 @@ function dtInstances($q) {
428
427
dtInstance . dataTable = result . dataTable ;
429
428
430
429
_instances [ dtInstance . id ] = dtInstance ;
431
- if ( _deferLastDTInstances ) {
432
- _deferLastDTInstances . resolve ( dtInstance ) ;
433
- }
434
- if ( _deferDTInstances ) {
435
- _deferDTInstances . resolve ( _instances ) ;
436
- }
430
+ _lastDTInstance = dtInstance ;
431
+
432
+ //previous promise
433
+ _deferDTInstances . resolve ( _instances ) ;
434
+ _deferLastDTInstance . resolve ( _lastDTInstance ) ;
435
+
436
+ //new promise
437
+ _deferDTInstances = $q . defer ( ) ;
438
+ _deferLastDTInstance = $q . defer ( ) ;
439
+
440
+ _deferDTInstances . resolve ( _instances ) ;
441
+ _deferLastDTInstance . resolve ( _lastDTInstance ) ;
442
+
437
443
return dtInstance ;
438
444
}
439
445
440
446
function getLast ( ) {
441
447
var defer = $q . defer ( ) ;
442
- if ( ! _lastDTInstance ) {
443
- _deferLastDTInstances = $q . defer ( ) ;
444
- _lastDTInstance = _deferLastDTInstances . promise ;
445
- }
446
- _lastDTInstance . then ( function ( dtInstance ) {
447
- defer . resolve ( dtInstance ) ;
448
- // Reset the promise
449
- _deferLastDTInstances = null ;
450
- _lastDTInstance = null ;
448
+ _deferLastDTInstance . promise . then ( function ( lastInstance ) {
449
+ defer . resolve ( lastInstance ) ;
451
450
} ) ;
452
451
return defer . promise ;
453
452
}
454
453
455
454
function getList ( ) {
456
455
var defer = $q . defer ( ) ;
457
- if ( ! _dtInstances ) {
458
- _deferDTInstances = $q . defer ( ) ;
459
- _dtInstances = _deferDTInstances . promise ;
460
- }
461
- _dtInstances . then ( function ( instances ) {
456
+ _deferDTInstances . promise . then ( function ( instances ) {
462
457
defer . resolve ( instances ) ;
463
- // Reset the promise
464
- _deferDTInstances = null ;
465
- _dtInstances = null ;
466
458
} ) ;
467
459
return defer . promise ;
468
460
}
0 commit comments