第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Promise 錯誤處理問題 400卻還是會執(zhí)行success的function

Promise 錯誤處理問題 400卻還是會執(zhí)行success的function

慕工程0101907 2019-02-20 14:18:30
action 中的login 是這樣的login: ({ commit, state }, { user }) => {    return login(user).then(res => {        let data = res.data        let expires = new Date(data.expires_in)        (...)        return Promise.resolve(res.data)    }, error => Promise.reject(error))},在組件中調(diào)用以這個登入為例, 如果成功的話一切都非常美好, 但如果失敗, 像是故意打錯帳號密碼(400 Bad Req)error: [{username_password_fields: "Invalid username or password"}]errRes應該要返回上面這樣的訊息, 但console 總是返回Uncaught (in promise) TypeError: Cannot read property 'data' of undefined這個undefined 的data卻是 action中第三行那個data,錯誤的時候竟然也跑進成功的callback了, 失敗的訊息卻沒有接收到,導致之后組件中返回的錯誤是 Uncaught (in promise) TypeError不知道這樣是因為我哪里操作錯誤, 還是說promise有別種錯誤處理的解法?還請大大幫忙
查看完整描述

2 回答

?
蠱毒傳說

TA貢獻1895條經(jīng)驗 獲得超3個贊

login: ({ commit, state }, { user }) => new Promise((resolve, reject) => {

    login(user).then(res => {

      let data = res.data

      let expires = new Date(data.expires_in)

      (...)

      resolve(res.data)

    }, error => reject(error))

  }),

如果你的問題出在login的Promise那應該繼續(xù)往回找 看你login的請求是否寫的有問題


查看完整回答
反對 回復 2019-02-24
?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

login: async ({ commit, state }, { user }) => { 

       var res = await login(user);

       let data = res.data;

       let expires = new Date(data.expires_in);

       (...)

       return res.data;   

},

methods: {

    async login () {

        try{

            let result = await this.$store.dispatch('login', {

                user: {

                  username: this.username,

                  password: this.password

                }

             }); 

             (...)

        }catch(errorRes){

            const errors = errorRes.response.data.error

            let messages = []


            errors.forEach(error => {

              Object.keys(error).forEach(key => {

                messages.push(error[key])

              })

            })


            this.$message({

                showClose: true,

                message: messages.join(', '),

                type: 'error'

            })

         }

       

    },

}


查看完整回答
反對 回復 2019-02-24
  • 2 回答
  • 0 關注
  • 961 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號