Node.js - ssh2-sftp-client 获取多个文件错误
Node.js - ssh2-sftp-client getting multiple files error
我使用 ssh2-sftp-client 获取一些文件。如果我使用 sftp.end();最后我在控制台中收到此错误:
{ Error: fastGet->exists->exists: No SFTP connection available
at Object.formatError (/home/project/node_modules/ssh2-sftp-client/src/utils.js:62:18)
at SftpClient.fastGet (/home/project/node_modules/ssh2-sftp-client/src/index.js:590:19)
at process._tickCallback (internal/process/next_tick.js:68:7) code: 'ERR_NOT_CONNECTED', custom: true } 'Error'
...
我错过了什么?
我认为目前正在发生的事情是,由于您没有从第二个 then()
return 中获取 Promise
,因此第三个 then()
会立即得到解决(值为 undefined
),这会导致您的连接立即终止(在您的 fastGet()
有时间完成之前)。
要解决此问题,您需要从第二个 then()
中明确 return 一个 Promise
,只有在所有文件都已传输后才能解决。如果至少有一次传输失败,您可能还需要考虑拒绝该承诺。
我使用 ssh2-sftp-client 获取一些文件。如果我使用 sftp.end();最后我在控制台中收到此错误:
{ Error: fastGet->exists->exists: No SFTP connection available
at Object.formatError (/home/project/node_modules/ssh2-sftp-client/src/utils.js:62:18)
at SftpClient.fastGet (/home/project/node_modules/ssh2-sftp-client/src/index.js:590:19)
at process._tickCallback (internal/process/next_tick.js:68:7) code: 'ERR_NOT_CONNECTED', custom: true } 'Error'
...
我错过了什么?
我认为目前正在发生的事情是,由于您没有从第二个 then()
return 中获取 Promise
,因此第三个 then()
会立即得到解决(值为 undefined
),这会导致您的连接立即终止(在您的 fastGet()
有时间完成之前)。
要解决此问题,您需要从第二个 then()
中明确 return 一个 Promise
,只有在所有文件都已传输后才能解决。如果至少有一次传输失败,您可能还需要考虑拒绝该承诺。