Node.js 如何将并发承诺限制到特定数量?
在我的代码中,执行的承诺是1乘1。它不是并发概念。如何使用limit 8承诺转换为并发。因此,它就像一个创建一个池,并承诺限制8。然后,实时推送和读取承诺输出 例如 如果在1秒内它可以完成2个承诺任务,那么它将输出2个承诺。然后用2份新的承诺工作再次填满人才库 我不希望它等待8承诺工作在同一时间完成,并开始填补池与8工作再次Node.js 如何将并发承诺限制到特定数量?,node.js,Node.js,在我的代码中,执行的承诺是1乘1。它不是并发概念。如何使用limit 8承诺转换为并发。因此,它就像一个创建一个池,并承诺限制8。然后,实时推送和读取承诺输出 例如 如果在1秒内它可以完成2个承诺任务,那么它将输出2个承诺。然后用2份新的承诺工作再次填满人才库 我不希望它等待8承诺工作在同一时间完成,并开始填补池与8工作再次 import fetch from 'node-fetch'; import { load } from 'cheerio'; (async () => {
import fetch from 'node-fetch';
import { load } from 'cheerio';
(async () => {
const response = await fetch('https://hentairead.com/page/1/');
const $ = load(await response.text());
const totalPage = $('span.pages')
.text()
.match(/\d{3,}/g)
.toString();
for(let page = 1; page <= totalPage; page++)
{
const response = await fetch(`https://hentairead.com/page/${page}/`);
const $ = load(await response.text());
$('div.item-thumb.c-image-hover > a').each((index, item) => {
console.log(item.attribs.title);
});
}
})();
从“节点获取”导入获取;
从'cheerio'导入{load};
(异步()=>{
const response=等待获取('https://hentairead.com/page/1/');
const$=load(wait response.text());
常量totalPage=$('span.pages')
.text()
.match(/\d{3,}/g)
.toString();
对于(第页=1;第页){
日志(item.attribs.title);
});
}
})();
从“节点提取”导入提取;
从'cheerio'导入{load};
从“c-promise2”导入{CPromise};
(异步()=>{
const response=等待获取('https://hentairead.com/page/1/');
const$=load(wait response.text());
常量totalPage=$('span.pages')
.text()
.match(/\d{3,}/g)
.toString();
const fetchPage=async(page)=>{
const response=等待获取(`https://hentairead.com/page/${page}/`);
const$=load(wait response.text());
$('div.item-thumb.c-image-hover>a')。每个((索引,项)=>{
日志(item.attribs.title);
});
}
等待CPromise.all(函数*(){
对于(第页=1;第页)
import fetch from 'node-fetch';
import { load } from 'cheerio';
import {CPromise} from "c-promise2";
(async () => {
const response = await fetch('https://hentairead.com/page/1/');
const $ = load(await response.text());
const totalPage = $('span.pages')
.text()
.match(/\d{3,}/g)
.toString();
const fetchPage= async (page)=>{
const response = await fetch(`https://hentairead.com/page/${page}/`);
const $ = load(await response.text());
$('div.item-thumb.c-image-hover > a').each((index, item) => {
console.log(item.attribs.title);
});
}
await CPromise.all(function*(){
for(let page = 1; page <= totalPage; page++){
yield fetchPage(page);
}
}, {concurrency: 8});
})();