如何解决@ typescript-eslint / no-misused-promises和新的Promise=> return resolve
我从firebase functions samples获得的函数中有一个Promise(()=> return resolve())模式。
const appendPromise = (requestWithoutAuth: {
spreadsheetId: any
range: string
valueInputOption: string
insertDataOption: string
resource: { values: any[][] }
}): Promise<any> => {
// eslint-disable-next-line @typescript-eslint/no-misused-promises
return new Promise((resolve,reject) => {
return getAuthorizedClient().then((client) => {
const sheets = google.sheets('v4')
const request = requestWithoutAuth
request.auth = client
return sheets.spreadsheets.values.append(request,(err: any,response: { data: unknown }) => {
if (err) {
console.log(`The API returned an error: ${err}`)
return reject(err)
}
return resolve(response.data)
})
})
})
}
eslint抱怨@typescript-eslint/no-misused-promises。
我不习惯,用Promise.resolve()替换新的Promise()足够了吗?
谢谢
解决方法
我相信linter的问题是您在Promise构造函数中使用了Promise 。使用异步函数并将Promise构造函数的缩进量降低一个:
const appendPromise = async (requestWithoutAuth: {
spreadsheetId: any
range: string
valueInputOption: string
insertDataOption: string
resource: { values: any[][] }
}): Promise<any> => {
const client = await getAuthorizedClient();
return new Promise((resolve,reject) => {
const sheets = google.sheets('v4')
const request = requestWithoutAuth
request.auth = client
return sheets.spreadsheets.values.append(request,(err: any,response: { data: unknown }) => {
if (err) {
console.log(`The API returned an error: ${err}`)
return reject(err)
}
return resolve(response.data)
})
})
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。