【问题标题】:Promisify node-ftps commandPromisify node-ftps 命令
【发布时间】:2021-11-01 11:24:23
【问题描述】:

我试图承诺 node-ftps 函数以使用 async/await。我指的是这个 github link,它解释了应该如何完成。我想出了以下代码,但它仍然无法正常工作。

我的承诺功能:


const ftpGetFile = async (ftps, source, destination) => {

    console.log(`FTP MGET ${source} => ${destination}`)
    return ftps.raw(`mget -e -O ${destination} ${source}`).exec((error, result) => {
        return new Promise((resolve, reject) => {
            if (error) {
                console.log("ftp fget error", error)
                reject(error)
            } else {
                console.log("ftp fget succss", result)

                resolve(result)
            }
        })
    })
}

我怎么称呼它

for (let index = 0; index < listToSync.length; index++) {

    // ....
    await ftpGetFile(ftp, source, destination)
    // ....
}

【问题讨论】:

    标签: node.js ftp lftp


    【解决方案1】:

    您需要返回 Promise 本身,然后在回调中解析到 exec

    const ftpGetFile = async (ftps, source, destination) => {
      console.log(`FTP MGET ${source} => ${destination}`)
    
      return new Promise((resolve, reject) => {
        ftps.raw(`mget -e -O ${destination} ${source}`).exec((error, result) => {
          if (error) {
            console.log("ftp fget error", error)
            reject(error)
          } else {
            console.log("ftp fget succss", result)
            resolve(result)
          }
        })
      })
    }
    

    【讨论】:

    • 当然!!!...我想是时候散散步了。谢谢大佬
    • 没问题 - 我们都去过那里:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多