@@ -91,8 +91,8 @@ var SubtitlesOctopus = function (options) {
91
91
// Worker
92
92
if ( ! self . worker ) {
93
93
self . worker = new Worker ( self . workerUrl ) ;
94
- self . worker . onmessage = self . onWorkerMessage ;
95
- self . worker . onerror = self . workerError ;
94
+ self . worker . addEventListener ( 'message' , self . onWorkerMessage ) ;
95
+ self . worker . addEventListener ( 'error' , self . workerError ) ;
96
96
}
97
97
self . workerActive = false ;
98
98
self . createCanvas ( ) ;
@@ -390,13 +390,9 @@ var SubtitlesOctopus = function (options) {
390
390
break ;
391
391
}
392
392
case 'get-events' : {
393
- console . log ( data . target ) ;
394
- console . log ( data . events ) ;
395
393
break ;
396
394
}
397
395
case 'get-styles' : {
398
- console . log ( data . target ) ;
399
- console . log ( data . styles ) ;
400
396
break ;
401
397
}
402
398
case 'ready' : {
@@ -558,17 +554,52 @@ var SubtitlesOctopus = function (options) {
558
554
}
559
555
} ;
560
556
557
+ self . fetchFromWorker = function ( workerOptions , onSuccess , onError ) {
558
+ try {
559
+ var target = workerOptions [ 'target' ]
560
+
561
+ var timeout = setTimeout ( function ( ) {
562
+ reject ( Error ( 'Error: Timeout while try to fetch ' + target ) )
563
+ } , 5000 )
564
+
565
+ var resolve = function ( event ) {
566
+ if ( event . data . target == target ) {
567
+ onSuccess ( event . data )
568
+ self . worker . removeEventListener ( 'message' , resolve )
569
+ self . worker . removeEventListener ( 'error' , reject )
570
+ clearTimeout ( timeout )
571
+ }
572
+ }
573
+
574
+ var reject = function ( event ) {
575
+ onError ( event )
576
+ self . worker . removeEventListener ( 'message' , resolve )
577
+ self . worker . removeEventListener ( 'error' , reject )
578
+ clearTimeout ( timeout )
579
+ }
580
+
581
+ self . worker . addEventListener ( 'message' , resolve )
582
+ self . worker . addEventListener ( 'error' , reject )
583
+
584
+ self . worker . postMessage ( workerOptions )
585
+ } catch ( error ) {
586
+ onError ( error )
587
+ }
588
+ }
589
+
561
590
self . createEvent = function ( event ) {
562
591
self . worker . postMessage ( {
563
592
target : 'create-event' ,
564
593
event : event
565
594
} ) ;
566
595
} ;
567
596
568
- self . getEvents = function ( ) {
569
- self . worker . postMessage ( {
597
+ self . getEvents = function ( onSuccess , onError ) {
598
+ self . fetchFromWorker ( {
570
599
target : 'get-events'
571
- } ) ;
600
+ } , function ( data ) {
601
+ onSuccess ( data . events )
602
+ } , onError ) ;
572
603
} ;
573
604
574
605
self . setEvent = function ( event , index ) {
@@ -592,11 +623,13 @@ var SubtitlesOctopus = function (options) {
592
623
style : style
593
624
} ) ;
594
625
} ;
595
-
596
- self . getStyles = function ( ) {
597
- self . worker . postMessage ( {
626
+
627
+ self . getStyles = function ( onSuccess , onError ) {
628
+ self . fetchFromWorker ( {
598
629
target : 'get-styles'
599
- } ) ;
630
+ } , function ( data ) {
631
+ onSuccess ( data . styles )
632
+ } , onError ) ;
600
633
} ;
601
634
602
635
self . setStyle = function ( style , index ) {
0 commit comments