全局变量不更新函数外部的值

时间:2019-04-02 10:05:08

标签: node.js web-scraping request global-variables cheerio

该变量正在函数内部进行更新,但是当在函数外部调用变量时,它将返回原始值。

我尝试将其更改为const或var,但仍保持不变。

let listSub =[];
let dataForJson = {};

async function getContent(url) {
    let result = [];
    await request(url, async (err, res, body) => {
        if (err && res.statusCode !== 200) throw err;
        const $ = cheerio.load(body, {
            normalizeWhitespace: true,
            xmlMode: true
        });


        $('#subcatpromo').children().map(function (index, element) {
            $(element).children().map(function (i, hai) {
                listSub.push($(hai).attr('id')); //or id
                dataForJson[`${listSub[index]}`] =[]
             });
         });

        result = await Promise.map(listSub, async(value, index)=> {
            dataForJson[`${listSub[index]}`] =[]
            return value;
        }, {
            concurrency: 10
        });
    });
    return result
  };

getContent(link);
console.log(dataForJson);

listSub应该在数组中具有值,并且dataForJason应该返回一个具有相同listSub值的对象。

原始:

listSub =[]; 
dataForJason ={};

预期:

listSub = ['hai', 'halo', 'yassas']; 
dataForJason: {
    'hai': [],
    'halo': [],
    'yassas': []
}

0 个答案:

没有答案