жду не дожидаясь разрешения обещания - PullRequest
0 голосов
/ 15 октября 2018

Это мое маленькое обещание возврата функции / класса twilio, которое я импортирую в другой файл.Я получаю err и res здесь, возвращая его в обещании

class TwilioService {
  sendSms(to, message) {
    return this.twilio.sendMessage(sms,(err,res) => {
      return new Promise((resolve, reject) => {
        if (err) {
          console.log(err)
          return resolve(res)
        } else {
          console.log(res, 'ppppppppppppppppp')
          return reject(res)
        }
      })
    })
  }
}

Теперь это моя функция, в которой я использую эту функцию.

Но когда я делаю console.log(sendSms), я получаю неопределенное значение в консоли, даже когда я возвращаю обещание от функции twilio.Что я здесь не так делаю.

import Twilio from '../../services/twilio'
const twilio = new Twilio()
const handler = async(request, reply) => {
  try {
    const sendSms = await twilio.sendSms(`+91${mobile}`, `Welcome to App. User ${verificationCode} as your signup OTP.`)
    console.log(sendSms, 'oooooooooooooooo')
  } catch(err) {
    console.log(err)
  }
}

Пожалуйста, помогите !!!Спасибо

1 Ответ

0 голосов
/ 15 октября 2018

В настоящее время вы возвращаете обратный вызов , который, вероятно, не возвращает Promise - переключите порядок, верните Promise, который разрешается при выполнении обратного вызова sendMessage.Также обратите внимание, что вы должны reject, если есть err и resolve с res, если нет err, а не наоборот:

class TwilioService {
  sendSms(to, message) {
    return new Promise((resolve, reject) => {               // switch these two lines
      return this.twilio.sendMessage(sms, (err, res) => {   // switch these two lines
        if (err) {
          console.log(err)
          return reject(res) // reject on error, don't resolve
        } else {
          console.log(res, 'ppppppppppppppppp')
          return resolve(res) // resolve when there's no error
        }
      })
    })
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...