Tag: 评估

来自页面评估的返回值(puppeteer,asnyc编程)

我有以下问题:我有一个木偶的页面评估,其中包括asynchronous部分。 我想把asynchronous部分的值返回给puppeteer,但是它只是返回undefined而不等待Promiseparsing。 有人如何解决这个问题? 我的示例代码: const puppeteer = require('puppeteer'); async function testing(num) { const browser = await puppeteer.launch({ headless: false, ignoreHTTPSErrors: true }); const page = await browser.newPage(); const evaluating = await page.evaluate((num) => { //some synchrnous stuff (declaring some variablesand so on…) function lookForNumber(num) { if (num > 2) { var asyncstuff = setTimeout(function () […]

评估一个函数

我正在尝试创build一个小型库,您可以发送一个对象(具有函数)和一些数据以及参数,并将对象,数据和参数发送给工作进程,然后该进程将评估该对象以重build函数(从string到函数) 目前我有这个: JSON.stringify(object, function(key, val) { if typeof val === 'function' { return val + '' } return val }); 这个函数会将包含函数的对象串联起来。 在我的工作人员,我试图撤消这个过程。 我已经尝试了以下内容: eval(object)我也试图实现JSON.parse与eval()每个函数,当我碰到一个。 我也试过eval("return " + object.function) 这可能吗?

在模块内的节点的全局范围中评估代码

一般:在node.js中,如何访问正在执行的文件的作用域? 例如:我有一个模块(mod.js)和一个需要它的文件(main.js)。 从mod.js中我需要做一个eval()来访问main.js的作用域,如下所示: mod.js: exports.runCode = function(code) { var x = 1; // do some stuff to x and code return eval(code) + x; } main.js: var amod = require('./mod'); var func = function(a,b) { return a + b; } console.log(amod.runCode('2+2')); // works fine console.log(amod.runCode('func()')); // ReferenceError: func is not defined 庆典: $ node main […]

Nodejs:如何设置eval的文件名?

背景:我为node.js开发了一个小型模块系统,它asynchronous从一个单独的源服务器加载所有必需的代码,并用eval(code)编译它。 我的问题是,在这样的“eval-ed”代码中的所有运行时错误,堆栈跟踪显示<anonymous>作为文件名—我无法区分哪个代码段被引用。 我的问题:是否有一种方法来设置eval的文件名,以便堆栈跟踪显示一些程序定义的string,而不是<anonymous> ? 我目前的(不完美的)解决scheme:到目前为止,我把代码写入一个文件并加载require(file) 。 这将播种文件名—但这是一个复杂的解决方法。 注意:正常情况下,运行时错误不会在eval调用的编译中显示出来,而是在使用编译后的代码的时候。 因此,围绕eval进行尝试/捕捉并不能帮助识别哪个代码块失败。

Javascript:返回在eval中创build的值

我想要做这样的事情: function end(){ console.log(this); } // <– the problem is here with `this` eval('var a = 0; setTimeout(function(){ a = 10; end(); }, 2000)'); 2秒后应输出: { "a" : 10 } 这有可能吗?