Javascript 使用异步函数设置变量

Javascript 使用异步函数设置变量,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

我有一个节点项目,我想用一个函数的返回值填充一个var,该函数生成异步内容:

index.js

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
语句….
。谢谢你,我确实喜欢这个文档: