EvaluateExpressionAsync<> 超时?
Timeout with EvaluateExpressionAsync<>?
我正在使用 Puppeteer sharp 来呈现报告,其中一部分是执行用户提供的 javascript 来为报告准备数据。
我使用 AddScriptTagAsync 将脚本添加到页面,然后在呈现报告之前调用用户提供的脚本。
如果用户提供的 javascript 存在导致无限循环的问题(例如),那么我对 EvaluateExpressionAsync
的调用可能会永远等待:
await page.EvaluateExpressionAsync<dynamic>($"Prepare({DataObject});")
我无法将取消令牌传递给 EvaluateExpressionAsync
,所以我无法控制它,而且此方法似乎没有可用的超时。
我想把它限制在一个可控的秒数,然后让它超时。
如有任何建议,我们将不胜感激。
你会使用 WaitForExpressionAsync.
该方法的思想是在一段时间内执行表达式,直到结果为真。
但是,如果您确保您的表达式始终 return 为真值,WaitForExpressionAsync 将使用您作为选项传递的超时来超时。
我正在使用 Puppeteer sharp 来呈现报告,其中一部分是执行用户提供的 javascript 来为报告准备数据。
我使用 AddScriptTagAsync 将脚本添加到页面,然后在呈现报告之前调用用户提供的脚本。
如果用户提供的 javascript 存在导致无限循环的问题(例如),那么我对 EvaluateExpressionAsync
的调用可能会永远等待:
await page.EvaluateExpressionAsync<dynamic>($"Prepare({DataObject});")
我无法将取消令牌传递给 EvaluateExpressionAsync
,所以我无法控制它,而且此方法似乎没有可用的超时。
我想把它限制在一个可控的秒数,然后让它超时。
如有任何建议,我们将不胜感激。
你会使用 WaitForExpressionAsync.
该方法的思想是在一段时间内执行表达式,直到结果为真。
但是,如果您确保您的表达式始终 return 为真值,WaitForExpressionAsync 将使用您作为选项传递的超时来超时。