完成异步功能后,将值返回给Selenium

时间:2019-07-28 20:41:40

标签: javascript python function selenium

我正在用Python运行Selenium,并且需要在我的模拟站点上执行脚本。我有一个异步函数,需要花费不同的时间才能完成。仅在此递归完成后,才如何将变量的值返回到顶级(即Selenium / Python)?

现在,我将一堆项目附加到一个数组中(通过递归函数),这样我就可以将它们发送到异步函数而不必担心递归。一旦递归完成,我就简单地遍历此数组,然后将每个项目发送给异步函数。我正在努力使它返回主范围,因为异步函数的回调显然是有范围的,而且还处于循环内(因为它遍历数组),所以我不能{ {1}}直接值。

return

异步完成后,我需要将function myFunction(url, callback) { var img = new Image(); img.onerror = img.onabort = function() { callback(url, "error"); }; img.onload = function() { callback(url, "success"); }; img.src = url; } let primaryArray = [ 'via.placeholder.com/1', 'via.placeholder.com/2', 'via.placeholder.com/3', 'via.placeholder.com/4', 'via.placeholder.com/5', 'via.placeholder.com/bad' ]; let outputArr = []; function doStuff(id) { elem = primaryArray[id]; outputArr.push("https://" + elem); if (elem + 1 < primaryArray.length) doStuff(id + 1); } doStuff(0); good = []; outputArr.forEach(elem => { myFunction(elem, state => { if (state === "success") good.push(elem); }); }); 返回到顶级范围。我不能仅仅使用一个辅助函数(例如,与good进行核对以查看处理时间),因为那样我该如何将其移到顶部作用域?

0 个答案:

没有答案