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