Javascript 使用异步函数设置变量
我有一个节点项目,我想用一个函数的返回值填充一个var,该函数生成异步内容: index.jsJavascript 使用异步函数设置变量,javascript,node.js,Javascript,Node.js,我有一个节点项目,我想用一个函数的返回值填充一个var,该函数生成异步内容: index.js const search = require( './search.js' ); (async () => { try { var test = await search.searchMU('test'); console.log(test); } catch (e) { } })(); Search.js const puppet
const search = require( './search.js' );
(async () => {
try {
var test = await search.searchMU('test');
console.log(test);
} catch (e) {
}
})();
Search.js
const puppeteer = require( 'puppeteer' );
exports.searchMU = function( searchInput ) {
const fullUrl = url + excludes + type + display + search + searchInput;
puppeteer.launch().then( async browser => {
const page = await browser.newPage();
await page.goto( fullUrl );
var html = await page.content();
await browser.close();
return html;
} );
}
输出:
未定义
您正在使用
wait search.searchMU()
但searchMU
不会返回承诺。另外,如果可以在任何地方使用wait
,为什么要使用显式承诺链接样式(。然后(…)
)
exports.searchMU = async function( searchInput ) {
const fullUrl = url + excludes + type + display + search + searchInput;
const browser = await puppeteer.launch()
const page = await browser.newPage();
await page.goto( fullUrl );
var html = await page.content();
await browser.close();
return html;
}
searchMU
不返回任何内容,在puppeter.launch之前添加一条return
语句….
。谢谢你,我确实喜欢这个文档: