我在TypeScript中使用async/await
進行一些基本的異步操作,但是TSLint正在爲以下兩個函數拋出神祕的錯誤消息。有沒有人遇到過這些錯誤?在錯誤輸出中,沒有提到控制規則,所以我不明白是什麼導致了這些。任何想法將不勝感激。這可能是關於什麼? [TsLint錯誤:「必須正確處理承諾」]
主要請求:
import * as rp from 'request-promise'
export function getRequest(address: rp.Options): rp.RequestPromise {
return rp(address)
}
導出異步函數:
export async function getStatus(message: Message) {
try {
const res = await getRequest(address)
if (res.ready) {
message.reply('...')
} else {
message.reply('...')
}
} catch (err) {
message.reply(err)
}
}
這得到:Promises must be handled appropriately
和await of non-Promise
3#線。
使用該出口的簡單的功能是:
client.on('message', message => {
if (message.content === 'green') {
getStatus(message)
}
})
這也得到Promises must be handled appropriately
。
其他信息:
即使錯誤消息並沒有提到它,這似乎是Promises must be handled appropriately
理事規則: https://palantir.github.io/tslint/rules/no-floating-promises/
而這個問題提到await of non-Promise
: https://github.com/palantir/tslint/issues/2661
你也可以在問題中發佈getRequest函數,謝謝。 – Rikusor
好點,我添加了它。 – cinnaroll45
只是在這裏猜測,但這可能是tslint不承認rp函數返回一個承諾。你可以嘗試爲它設置一個類型,導出函數getRequest(地址:rp.Options):Promise {...讓我知道如果這個工程,所以我不花更多的時間檢查這個:) –
Rikusor