我正在尝试在 VS Code 中开发一个函数,该函数将 url 作为输入并在处理完成后返回响应。然而,当这个函数运行时,它什么也不返回。我尝试在 Webstorm 中测试类似的代码,并确认它 console.logs 结果很好。我是节点新手并承诺,所以不确定我做错了什么。
编辑 - 根据@hellikiam 的建议,在 driver.get 之前添加了 return 关键字。还添加了一个简单的日志语句,以确认结果可用但未在正文中返回。
var AxeBuilder = require('@axe-core/webdriverjs'),
WebDriver = require('selenium-webdriver');
const chromedriver = require('chromedriver');
const chrome = require("selenium-webdriver/chrome");
const screen = {
width: 640,
height: 480
};
chrome.setDefaultService(new chrome.ServiceBuilder(chromedriver.path).build());
var driver = new WebDriver.Builder()
.forBrowser('chrome')
.setChromeOptions(new chrome.Options().headless().windowSize(screen))
.build();
module.exports = async function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
const url = (req.query.url || (req.body && req.body.url));
return driver.get(url).then(function () {
new AxeBuilder(driver).analyze(function (err, results) {
resultsJson = JSON.stringify(results);
console.log(resultsJson)
context.res = {
status: 200, /* Defaults to 200 */
body: resultsJson,
headers: {
'Content-Type': 'application/json'
}
};
if (err) {
// Handle error somehow
}
});
});
context.done();
}