Javascript 为什么承诺链接在Node.js中不起作用?

Javascript 为什么承诺链接在Node.js中不起作用?,javascript,node.js,asynchronous,promise,Javascript,Node.js,Asynchronous,Promise,我有一个脚本,刮一个网站,并应发送数据回客户端。。。让你知道这一切都在app.get中 这是代码。。。第二个。然后就不起作用了。一旦ChereIO对数组进行迭代,它就应该在数组填充完毕后将数组发送到客户端。但它不起作用。。。也许我设定第二个承诺的方式有问题?请帮忙 axios.get("https://www.sciencenews.org/").then(function(response){ var $ = cheerio.load(response.data); $

我有一个脚本,刮一个网站,并应发送数据回客户端。。。让你知道这一切都在app.get中

这是代码。。。第二个。然后就不起作用了。一旦ChereIO对数组进行迭代,它就应该在数组填充完毕后将数组发送到客户端。但它不起作用。。。也许我设定第二个承诺的方式有问题?请帮忙

  axios.get("https://www.sciencenews.org/").then(function(response){
     var $ = cheerio.load(response.data);
     $("div.field-item-node-ref").each(function(i,element){
       if($(element).children('.ad').length == 0 && $(element).children('article').length > 0) {
                    array1.push($(element).find('h2.node-title').text());
                    array2.push($(element).find('div.content').text());
 array3.push(`https://www.sciencenews.org${$(element).find('a').attr('href')}`);
                    array4.push(`${$(element).find('img').attr('src')}`);
                 }
            })
        }).then(()=>{
            res.send({titles:array1,summaries:array2,links:array3,base64img:array4});
         })

在提供的代码段中,没有声明任何数组,也没有可调用“send”的res对象,因为没有任何对象被传递到函数中

一旦声明了数组,并用console.log临时替换了res,它似乎就可以在我这端工作了


我假设这个函数是在路由中调用的,所以在这个函数的范围内应该有一个“res”对象。如果是这样的话,看起来只是在向数组推送数据之前声明数组的问题。

不起作用意味着什么?不向客户端发送数据,表示存在错误未经处理的拒绝类型o?res没有定义,但是response是的,添加一个.catch=>console.error来获取实际的错误。