使用cheerio.js获取数据时,在for循环中进行异步等待

时间:2019-03-27 07:14:57

标签: javascript node.js async-await cheerio

我正在尝试使用Cheerio.js并使用async / await来同步请求。

这是我的(伪)代码:

for(var i=1; i<=3; i++){

rp(url)
    .then(async (html) => {
        const $ = await cheerio.load(html);
        dataItem1 = await $('input[id=data1]').val();
        console.log(dataItem1);
        await console.log("yay!" + i);
    })
    .catch((err) => {
        console.log(err);
    })
}

当我使用node.js运行它时,输出为:

<required dataItem1>
Yay! 4
<required dataItem1>
Yay! 4
<required dataItem1>
Yay! 4

但是我想要的是

<required dataItem1>
Yay! 1
<required dataItem1>
Yay! 2
<required dataItem1>
Yay! 3

我要去哪里错了,应该对代码进行哪些更改以获得所需的输出?

0 个答案:

没有答案