vue3代码解读:else if (errorCode == ‘1000‘) { let params = { authT

else if (errorCode == '1000') {
                  let params = {
                     authType: 0,
                     userTicket: userTicket
                  }
                  api.login(params).then(res => {
                     if (res.code === '00000') {
                        Cookies.set('token', res.data.accessToken);
                        Cookies.set('refreshToken', res.data.refreshToken);
                        sessionStorage.setItem('token', res.data.accessToken)
                        resolve(res.data)
                     } else if (res.code === '20201') {
                        Cookies.remove('token')
                        Cookies.remove('refreshToken')
                        sessionStorage.removeItem('token')
                        window.kickout_native(0, 1, res.msg);
                        reject(res.msg)
                     } else {
                        Cookies.remove('token')
                        Cookies.remove('refreshToken')
                        sessionStorage.removeItem('token')
                        showToast(res.code, res.msg)
                     }
                  })
               }

这段代码是一个条件分支,通常出现在JavaScript的异步处理流程中,特别是在处理登录逻辑时。它使用了else if语句来检查一个错误码errorCode,并对特定错误码执行一系列操作。以下是逐行解释:

  1. else if (errorCode == '1000') { ... }:

    • 这是一个else if条件语句,它检查变量errorCode的值是否等于字符串'1000'。如果是,将执行大括号{}内的代码块。
  2. let params = { authType: 0, userTicket: userTicket }:

    • 声明一个局部变量params,它是一个对象,包含两个属性:authTypeuserTicketuserTicket变量的值在这个代码片段中没有给出,但它可能是之前某个地方获取的用户票据。
  3. api.login(params).then(res => { ... }):

    • 调用api.login函数,它可能是一个异步API调用,用于处理登录逻辑。params对象作为参数传递给这个函数。
    • .then(res => { ... })api.login返回的Promise对象的then方法,它用于指定当Promise解决(fulfill)时执行的回调函数。res是回调函数的参数,代表API调用的响应。
  4. if (res.code === '00000') { ... }:

    • .then的回调函数中,首先检查响应对象rescode属性是否等于'00000',这通常表示操作成功。
  5. Cookies.set('token', res.data.accessToken);:

    • 如果登录成功,则使用Cookies.set方法设置一个名为'token'的cookie,其值为响应数据中的accessToken
  6. Cookies.set('refreshToken', res.data.refreshToken);:

    • 设置另一个名为'refreshToken'的cookie,其值为响应数据中的refreshToken
  7. sessionStorage.setItem('token', res.data.accessToken):

    • 在会话存储(sessionStorage)中设置一个名为'token'的项,其值为accessToken
  8. resolve(res.data):

    • 如果以上步骤都成功执行,使用resolve函数解决(resolve)一个Promise,通常这是在处理异步操作时使用的,res.data作为解决的值。
  9. else if (res.code === '20201') { ... }:

    • 如果响应的code'20201',执行另一个代码块。这可能表示一种特定的错误情况。
  10. Cookies.remove('token')Cookies.remove('refreshToken'):

    • 如果遇到错误'20201',则移除之前设置的'token''refreshToken'cookie。
  11. sessionStorage.removeItem('token'):

    • 从会话存储中移除'token'项。
  12. window.kickout_native(0, 1, res.msg);:

    • 调用window.kickout_native,这可能是一个特定平台或框架提供的原生方法,用于处理用户被登出的情况。res.msg可能包含错误信息。
  13. reject(res.msg):

    • 使用reject函数拒绝(reject)一个Promise,通常这是在处理异步操作时使用的,res.msg作为拒绝的原因。
  14. else { ... }:

    • 如果以上条件都不满足,执行另一个代码块。
  15. showToast(res.code, res.msg):

    • 调用showToast函数,可能是用于显示一个提示信息给用户,res.coderes.msg分别作为提示信息的代码和消息内容。

这段代码整体上是在处理登录过程中可能遇到的不同情况,并根据API响应进行相应的操作,如设置或移除cookies和会话存储项,显示提示信息,或者调用原生方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值