readline-promise

Readline using promises

readline-promise

A drop in replacement for readline with additional promise based methods like map, reduce, and forEach. Uses a custom AsyncIteratorimplementation.

Note: If you were using var readline = require('readline'), change this to var readline = require('readline-promise').default.

Example

import readline from 'readline-promise';
import fs from 'fs';

const rlp = readline.createInterface({
  terminal: false,
  input: fs.createReadStream('data.txt')
});

rlp.forEach((line, index) => {
  console.log({ line, index });
});

Example

import readline from 'readline-promise';

const rlp = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: true
});

let bar = null;

rlp.questionAsync('Foo?').then(answer => {
  bar = answer;
});

Extended API

readline-promiseadds the following methods

readline.createInterface(options) → rlp

Creates a new line reader Interface (rlp)

rlp.forEach(iteratee) → Promise<undefined>

Iterates through each line calling an iterateefunction with the value. See Array.forEachdocumentation for details

  • iteratee<Function>
    • line<*> - line value
    • index<Number> - the line index starting from 0
    • lines<Array<*>> - all current line values as an array

rlp.each(iteratee) → Promise<undefined>

Alias for rlp.forEach

rlp.map(iteratee) → Promise<Array<*>>

Performs a map operation using the iteratee function. See Array.mapdocumentation for details

  • iteratee<Function>
    • line<*> - line value
    • index<Number> - the line index starting from 0
    • lines<Array<*>> - all current line values as an array

rlp.reduce(iteratee [, accumulator]) → Promise<*>

Performs a reduce operation using the iteratee and optional accumulator/initial value. See Array.reducedocumentation for details

  • iteratee<Function>
    • accumulator<*> - accumulator value
    • line<*> - line value
    • index<Number>- the line index starting from 0
    • lines<Array<*>> - all current line values as an array
  • [accumulator]<*> - Optional initial value

rlp.questionAsync(query) → Promise<*>

Performs a question that returns a Promise that resolves to the answer value

  • query<String> - prompt text

HomePage

https://github.com/bhoriuchi/readline-promise

Repository

https+https://github.com/bhoriuchi/readline-promise


上一篇:webpack 图片路劲和打包
下一篇:slib

相关推荐

  • 🔥 Promise|async|Generator 实现&amp;原理大解析 | 9k字

    笔者刚接触async/await时,就被其暂停执行的特性吸引了,心想在没有原生API支持的情况下,await居然能挂起当前方法,实现暂停执行,我感到十分好奇。好奇心驱使我一层一层剥开有关JS异步编程的...

    4 个月前
  • 面试题1:Promise递归实现拉取数据

    题目:请用promise递归实现拉取100条数据,每次拉取20条,结束条件为当次拉取不足20条或者已经拉取100条数据 ...

    2 个月前
  • 面试官要求我们手动实现 Promise.all

    情景: 最近面试,有两次被问到手动实现 Promise.all,不幸的是我都没把这题做好。因为我没有去准备这个,我不知道手动实现已有的 API 有什么意义。 但是为了防止以后还会遇到此类题,还是记录下...

    1 个月前
  • 面试官你来,130行带你手写完整Promise

    大家好,我是雷锋蜀黍。一直在某些面试宝典看到面试官要你手撸一个promise,今天天气这么好,不如我们来搞一搞。(PS:从未看过别人的实现,本文更像是记录一个思考的过程) 最终的代码完全符合Promi...

    3 个月前
  • 阅读Promise A+规范

    本文主要是PromiseA规范(https://promisesaplus.com/)的翻译加上个人的理解。 1 什么是Promise A promise represents the eve...

    2 年前
  • 通过koa2和Promise.race()构造一个超时取消的ajax。

    MDN上说: 你可以使用AbortController.AbortController()构造函数创建一个新的AbortController对象。 使用AbortSignal 对象完成与DOM请求...

    1 年前
  • 通过Iterator控制Promise.all的并发数

    背景 异步是 js 一个非常重要的特性,但很多时候,我们不仅仅想让一系列任务并行执行,还想要控制同时执行的并发数,尤其是在针对操作有限资源的异步任务,比如文件句柄,网络端口等等。 看一个例子。

    8 个月前
  • 这样理解 promise

    官网解释 promise 表示一个异步操作的最终结果。 翻译 ==可以将promise理解为一个状态机==,它存在三种不同的状态,并在某一时刻只能有一种状态 pending 表示还在执行 ...

    1 年前
  • 这几个Promise的输出到底是?

    看一下以下几个单选题,正确的输出是什么呢? (1) A. print message once B. print message twice C. Unhandled Promise...

    5 个月前
  • 轻松上手promise原理(2):then的简单实现

    轻松上手promise原理(2):then的简单实现 在上一篇文章中,我们对于promise有了初步的认识,我们了解到promise是new出来的对象,有三个对应pedding,fulfilled,r...

    12 天前

官方社区

扫码加入 JavaScript 社区