Я использую библиотеку node-ftp , и я хотел бы обещать определенные методы (list()
и get()
).
Я знаю, что существуют обещания обертки, но мне нужно вернуть читаемый поток (а не записать в локальный файл), и узел-ftp позволяет это.
метод get()
, кажется, следует правильному шаблону для обещания, но я не могу получить чтобы это работало:
список ([ путь,] [ useCompression,] <функция> обратный вызов)
непроизведенный код работает должным образом
// THIS WORKS
var Client = require('ftp');
var c = new Client();
c.on('ready', function () {
c.list('/mypath', function (err, data) {
console.log(data)
})
});
c.connect()
.. обещанный код не:
// THIS DOES NOT WORK
var Client = require('ftp');
var { promisify } = require('util');
var c = new Client();
var ftp_list = promisify(c.list)
c.on('ready', function () {
ftp_list('/mypath')
.then(data => {
console.log(data)
})
.catch((err) => {
console.log('Error', err);
});
});
c.connect()
возвращает ошибку: TypeError: this._pasv is not a function
Наличие this.
ошибка заставляет меня думать, что это проблема со стрелкой, но использование обычной функции тоже не сработало.
Может ли эта функция узла ftp (а также c.get()
) быть таким образом обещанной? Или я что-то упустил?