首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在node.js中逐行限制并发性

如何在node.js中逐行限制并发性
EN

Stack Overflow用户
提问于 2017-08-04 04:49:36
回答 1查看 213关注 0票数 1

我试图逐行读取一个文件,并使用读取的数据执行一些异步函数。我需要限制它的并发性。我知道如何逐行读取,以及如何使用模块进行并发,但我不知道如何将它们放在一起。我用的是逐行和咽喉模块。

到目前为止,我一直在努力,但没有成功,以下是我的尝试:

代码语言:javascript
复制
// modules
const CONCURRENCY = 5 
const throat = require('throat')(CONCURRENCY)
const LineByLineReader = require('line-by-line')
lr = new LineByLineReader('urls.txt')

throat(() => { 
  lr.on('line', function (line) {

      return main(line) // this is an async function that returns a promise
      Promise.resolve()

  })
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-04 05:42:24

您需要在throat回调中使用line

代码语言:javascript
复制
const CONCURRENCY = 5
const throat = require('throat')
const LineByLineReader = require('line-by-line')
lr = new LineByLineReader('urls.txt')

lr.on('line', throat(CONCURRENCY, main))

此外,您还可以使用节点的内置读出线模块,而不是line-by-line

代码语言:javascript
复制
const fs = require('fs')
const readline = require('readline')

readline.
  createInterface({input: fs.createReadStream('urls.txt')}).
  on('line', throat(CONCURRENCY, main))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45498456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档