javascript - 如何在Javascript中正确地将函数转换为字符串?
问题描述
我正在尝试重写Greenlet,一个用于在前端Blob()
创建的库。worker thread
我尝试使用相同的方法将函数转换为字符串,但该函数的某些部分消失了:
const workerFile = new Blob([`const fn = ${asyncFn};` + (self.onmessage = (e) => {
console.log(fn)
})])
然后它将渲染:
workerFile.text().then(res => {
console.log(res)
})
//Returning the following:
/*const fn = async function sum(a, b) {
return a + b;
};e => {
console.log(fn);
}*/
self.onmessage
消失了。如何在不使用的情况下正确地对其进行字符串化function.toString()
?为了防止这种情况发生,我需要知道哪些缺少的语法部分?
解决方案
看起来毫无意义,而且似乎是一个相对不好的做法。如果您已经可以访问服务器来编写此类代码,那么您不妨创建一个 Worker,而无需使用 greenlet。但是,在大多数浏览器String+(functionHere);
中会给你一个看起来像函数的字符串。
console.log(''+(()=>{ /* see it works */ }));
推荐阅读
- mysql - SQL请求输出上月最大数
- c++ - C++ clock() 只返回零
- google-apps-script - 以编程方式与特定用户(不是 Teamdrive 成员)共享 Teamdrive 中的文件
- netsuite - 如何将内联 HTML 列添加到套件脚本子列表?
- google-app-engine - gcloud app deploy 和 kubectl Expose 部署有什么区别?
- postgresql - 触发更新某些表而不更新主表
- ios - 使用 userDefaults 保存自定义背景颜色
- jquery - 链接依赖的 jQuery 延迟进度,失败然后
- c# - LRU缓存问题的两种解决方案:为什么一种比另一种快?
- python - 得到零python除法