Created
November 23, 2015 03:11
-
-
Save petamoriken/e0cf65b648473bcaf2aa to your computer and use it in GitHub Desktop.
InlineWorker の生成(function によるラッパー vs Worker クラスの継承)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function createInlineWorker(func) { | |
if(typeof func !== "function") | |
throw new TypeError("Please set function"); | |
let str = `(${func.toString()})()`; | |
//let str = func.toString().match(/\s*{([\w\W]*?)}$/)[1]; | |
let blob = new Blob([str], {type:"text/javascript"}); | |
return new Worker(URL.createObjectURL(blob)); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class InlineWorker extends Worker { | |
constructor(func) { | |
if(typeof func !== "function") | |
throw new TypeError("Please set function"); | |
let str = `(${func.toString()})()`; | |
//let str = func.toString().match(/\s*{([\w\W]*?)}$/)[1]; | |
let blob = new Blob([str], {type:"text/javascript"}); | |
super(URL.createObjectURL(blob)); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
使う場合は PhantomJS の page.evaluate みたいな罠があるので注意。