Жду данных от обещания внутри, если заявление VUE - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть эта функция входа в систему, где я хочу дать своей сессии некоторые данные, которые я смогу использовать позже.

Проблема в том, что когда я хочу отправить данные в мой сеанс, я получаю обещание, которое пытается вставить данные, прежде чем я получу результат из своего обещания.

Вот мое обещание:

async setData (storeId) {
      var getData = new Promise(function (resolve, reject) {
        let data = Functions.getScore('day', storeId)
        data.then(function (result) {
          resolve(result)
        })
      })
      getData.then(function (result) {
        console.log(result)
        return result
      })

вот моя функция входа в систему

login () {
      axios.post('API', {
        username: this.username,
        password: this.password,
        'condition': 'dashboard'
      }).then(response => {
        if (!response.data.Error) {
          var storeId = response.data.accessId
          this.$session.start()
          this.account = response.data
          // here do i want to store the data.
          this.$session.set('store', this.setData(storeId)) 
          this.$session.set('user', response.data)
          console.log(this.$session.getAll())
          //i will get my result here AFTER it should have filled the session 
        } else {
          alert('something went wrong')
        }
      })
     }

Я пытался вставить await в свою функцию if, но там говорится, что await - зарезервированное слово

promise

Как вы можете видеть здесь, это дает мне результат после того, как я пытаюсь ввести меня в сессию.

Заранее спасибо!

1 Ответ

0 голосов
/ 06 сентября 2018

Вы можете использовать асинхронный обработчик .then(async response => {})

login () {
  axios.post('API', {
    username: this.username,
    password: this.password,
    'condition': 'dashboard'
  }).then(async response => {
    if (!response.data.Error) {
      var storeId = response.data.accessId
      this.$session.start()
      this.account = response.data
      // here do i want to store the data.
      const storeData = await this.setData(storeId)
      this.$session.set('store', storeData) 
      this.$session.set('user', response.data)
      console.log(this.$session.getAll())
      //i will get my result here AFTER it should have filled the session 
    } else {
      alert('something went wrong')
    }
  })
 }
...