Я не понимаю, в чем преимущества этого.
Я сам попробовал и обнаружил, что новая функция на самом деле намного медленнее, чем прямое выполнение кода.
case "sync":
fn = new Function(
this.args(),
'"use strict";\n' +
this.header() +
this.content({
onError: err => `throw ${err};\n`,
onResult: result => `return ${result};\n`,
onDone: () => "",
rethrowIfPossible: true
})
);
break;
Почему бы не сделать это так
function async() {
"use strict";
some code......;
onError: err => `throw ${err};\n`,
onResult: result => `return ${result};\n`,
onDone: () => "",
rethrowIfPossible: true
}