Предупреждение «Неверное количество аргументов» после применения «util.promisify» - PullRequest
1 голос
/ 19 апреля 2020

Я использую stream.pipeline в Node.js:

import {pipeline} from "stream";

pipeline(file.stream,
        fs.createWriteStream(`${__dirname}${uploaderConfig.savePath}${fileName}`),
        (err) => {}
);

Все работает, предупреждений нет.
Теперь я хочу избавиться от обратного вызова с помощью util.promisify:

import {pipeline} from "stream";
import {promisify} from "util";
const asyncPipeline = promisify(pipeline);

await asyncPipeline(file.stream,
        fs.createWriteStream(`${__dirname}${uploaderConfig.savePath}${fileName}`)
);

Это тоже работает, но IDEA показывает предупреждение:

Ожидается недопустимое количество аргументов 1
const asyncPipeline: (arg1: (NodeJS. ReadableStream | (NodeJS .ReadableStream | NodeJS .WritableStream | NodeJS .ReadWriteStream) [])) => Обещание

Я предположил, что util.promisify должен просто завершить оригинал stream.pipeline, возвращая обещание вместо обратного вызова без изменения сигнатуры функции. Но на самом деле похоже, что подпись переопределена, иначе IDEA не выдаст предупреждение.

Вопросы:

  1. Как устранить предупреждение ?
  2. Почему после применения util.promisify изменяется сигнатура функции?
...