File tree Expand file tree Collapse file tree 3 files changed +23
-15
lines changed Expand file tree Collapse file tree 3 files changed +23
-15
lines changed Original file line number Diff line number Diff line change @@ -23,7 +23,7 @@ export default async function(constraints, videoEl) {
2323  } 
2424
2525  const  stream  =  await  navigator . mediaDevices . getUserMedia ( constraints ) ; 
26-   const  streamLoaded  =  hasFired ( videoEl ,  "loadeddata" ,   "error" ) ; 
26+   const  streamLoaded  =  hasFired ( videoEl ,  "loadeddata" ) ; 
2727
2828  if  ( videoEl . srcObject  !==  undefined )  { 
2929    videoEl . srcObject  =  stream ; 
Original file line number Diff line number Diff line change 1- export  function  hasFired ( element ,  successEvent ,  errorEvent )  { 
2-   return  new  Promise ( ( resolve ,  reject )  =>  { 
3-     element . addEventListener ( successEvent ,  resolve ,  {  once : true  } ) ; 
1+ export  function  hasFired ( eventTarget ,  successEvent ,  errorEvent  =  "error" )  { 
2+   let  $resolve ,  $reject ; 
43
5-      if   ( errorEvent   !==   undefined )  { 
6-        element . addEventListener ( errorEvent ,   reject ,   {   once :  true   } ) ; 
7-     } 
4+   const   promise   =   new   Promise ( ( resolve ,   reject )   =>  { 
5+     $resolve   =   resolve ; 
6+     $reject   =   reject ; 
87  } ) ; 
8+ 
9+   eventTarget . addEventListener ( successEvent ,  $resolve ) ; 
10+   eventTarget . addEventListener ( errorEvent ,  $reject ) ; 
11+ 
12+   promise . finally ( ( )  =>  { 
13+     eventTarget . removeEventListener ( successEvent ,  $resolve ) ; 
14+     eventTarget . removeEventListener ( errorEvent ,  $reject ) ; 
15+   } ) ; 
16+ 
17+   return  promise ; 
918} 
Original file line number Diff line number Diff line change 11import  "webrtc-adapter" ; 
2+ import  {  hasFired  }  from  "./promisify.js" ; 
23import  Worker  from  "./worker.js" ; 
34
4- export  function  scan ( imageData )  { 
5+ export  async   function  scan ( imageData )  { 
56  const  worker  =  new  Worker ( ) ; 
67
7-   return  new  Promise ( resolve  =>  { 
8-     worker . onmessage  =  event  =>  { 
9-       resolve ( event . data ) ; 
8+   worker . postMessage ( imageData ,  [ imageData . data . buffer ] ) ; 
109
11-       worker . terminate ( ) ; 
12-     } ; 
10+   const  event  =  await  hasFired ( worker ,  "message" ) ; 
11+ 
12+   worker . terminate ( ) ; 
1313
14-     worker . postMessage ( imageData ,  [ imageData . data . buffer ] ) ; 
15-   } ) ; 
14+   return  event . data ; 
1615} 
1716
1817/** 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments