从节点中的cheerio返回/pass结果

问题描述

我正在尝试将(格式化的)cheerio 结果(用 puppeteer 检索)传递给另一个函数。但是,虽然我可以将所需的信息注销到控制台,但我无法将结果传递给另一个函数。这是我的代码(就相关而言):

  async function checkPrice(page) {
  await page.reload();
  await page.mainFrame();
  let html = await page.evaluate (() => document.body.innerHTML);
  var $ = cheerio.load(html);
  async function calculate () {
    $('[data-reactid="32"]:first','[data-reactid="31"]',html).each(function() {
    let marketprice = $(this).text(); 
    var marketprice_p = parseFloat(marketprice.replace(/,/g,''));
    console.log('BTC marketvalue: EUR',marketprice);
    var btca = buyamount / marketprice_p;
    var btcr = math.round(btca,8);
    let btcro = btcr.toString().replace(/\./g,',');
    console.log('Buy amount BTC:',btcr);
    return btcro;
    })
    return '1'; // i want this to be "btcro"
    }
  let result = await calculate();
  return result;
}

async function monitor () {
  console.log('Initializing transaction: EUR',buyamount)
  let page = await configurebrowser();
  checkPrice(page).then(x => {console.log(x)});
}

monitor();

我希望用“return '1'”注释的行返回 btcro 的值。 (我尝试了很多,总是返回“未定义”,所以我添加一个 return '1' 以确保其余部分正常工作,即结果将传递给监视器函数,就是这种情况)。

我必须如何修改代码才能这样做?

非常感谢!!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)