的getAsync功能等則已經被執行後,完成它的執行。一個人應該先完成然後再去另一個?怎麼回事?我怎樣才能解決這個問題?爲什麼我的承諾不工作?
function checkRedis() {
\t \t return new Promise(resolve => {
\t \t \t \t \t
\t \t \t redis.set('kleberIsTheBest', 'heSureIs')
\t \t \t \t .then(() => {
\t \t \t \t \t console.log('1')
\t \t \t \t \t redis.getAsync('bananas').then(data => {
\t \t \t \t \t \t if(!data){
\t \t \t \t \t \t \t console.log('I got here bb')
\t \t \t \t \t \t \t resolve('DOWN')
\t \t \t \t \t \t }
\t \t \t \t \t \t console.log(`here is the ${data}`)
\t \t \t \t \t })
\t \t \t \t }) \t
\t \t \t \t .then((x) => {
\t \t \t \t \t console.log('2 ' + x)
\t \t \t \t \t redis.del('kleberIsTheBest')
\t \t \t \t \t console.log('i got here too bb')
\t \t \t \t \t resolve('UP')
\t \t \t \t })
\t \t \t \t .catch(() => {
\t \t \t \t \t console.log('uh oh... something went bad!')
\t \t \t \t \t resolve('DOWN')
\t \t \t \t })
\t \t \t })
\t }
在一個側面說明,莫非是抓工作的?無法模擬錯誤落入捕獲處理程序。
是應該如何等待的東西,它沒有一個參考?你爲什麼多次調用'resolve'? –
我打電話多次解析,因爲它應該根據服務器狀態返回UP或DOWN。 –
我不認爲你需要調用解決方案。我不認爲你需要新的承諾。 redis.set已經創建了一個承諾。 –