我的代码在Powershell中运行1分钟后就解决了诺言。但是,当我使用webpack运行它时,它仅输出promise,但是promise无法解决。也许是由于解决承诺花费了时间。
我正在寻找新闻网站。如果找到新闻,则输出1,输出0。代码中的函数a()
可以做到这一点。由于它是一个异步函数,因此它返回了promise。但是,当我尝试使用aa()
在函数.then()
中解决此承诺时,它没有解决。它不会输出任何内容。
(async () => {
async function a() { // this function does t=web scraping and returns a promise
let Url = 'https://newsapi.org/v2/everything?q=from=2019-04-31 & sortBy = publishedAt & apiKey = 07 eda57a8a364c4cb2dad52e00ff6865 ';
const browser = await puppeteer.launch({
headless: true
});
const page = await browser.newPage();
await page.setViewport({
width: 1920,
height: 926
});
await page.goto(Url, {
waitUntil: 'domcontentloaded'
});
await page.addScriptTag({
url: 'https://code.jquery.com/jquery-3.2.1.min.js '
});
let news = await page.evaluate(() => {
$.expr[":"].contains = $.expr.createPseudo(function(arg) {
return function(elem) {
return
$(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});
var str = "Influenza has been ruled out, and at this stage, we do not believe there is a risk to the public "
var body = $("body");
var elements = $("*:contains('" + str + "')").filter(
function() {
return $(this).find("*:contains('" + str + "')").length == 0
})
return elements;
});
browser.close();
return news["length"]
}
async function aa() {
let y = a(); // it is outputing a promise
alert(y)
y.then(function(result, error) { //IT IS NOT WORKING
if (result) {
alert(result)
} else {
alert(error)
}
})
}
let c = aa();
})()
预期结果:1或0;没有错误