Я использую 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 не выдаст предупреждение.
Вопросы:
- Как устранить предупреждение ?
- Почему после применения
util.promisify
изменяется сигнатура функции?