-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathworker.js
55 lines (44 loc) · 1.1 KB
/
worker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/* global FileReaderSync */
import { HELLO, hello, READ_FILES } from './actions.js'
onmessage = e => {
console.log('worker received message:', e.data)
const { type, payload } = e.data
switch (type) {
case HELLO:
postMessage(hello('from worker!'))
break
case READ_FILES:
syncReadFiles(payload)
// aSyncReadFiles(payload)
break
default:
break
}
}
function onError (e) {
postMessage('Worker ERROR: ' + e.toString())
}
function aSyncReadFiles (files) {
for (let i = 0; i < files.length; i++) {
const file = files.item(i)
console.log('ASYNC reading', file.name)
const reader = new FileReader()
reader.onload = function (e) {
postMessage(e.target.result)
}
reader.onerror = function (e) {
onError(e)
}
reader.readAsText(file)
}
}
function syncReadFiles (files) {
const buffers = []
for (let i = 0; i < files.length; i++) {
const file = files.item(i)
console.log('SYNC reading', file.name)
const reader = new FileReaderSync()
buffers.push(reader.readAsText(file))
}
postMessage(buffers)
}