Promisify node-ftps 命令
Promisify node-ftps command
我试图承诺一个 node-ftps function in order to use async/await. I am referring to this 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)
// ....
}
您需要 return 承诺本身,然后在回调中解析为 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)
}
})
})
}
我试图承诺一个 node-ftps function in order to use async/await. I am referring to this 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)
// ....
}
您需要 return 承诺本身,然后在回调中解析为 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)
}
})
})
}