Javascript 如何在vuejs中在后台运行方法

Javascript 如何在vuejs中在后台运行方法,javascript,vue.js,background,Javascript,Vue.js,Background,我的登录表如下。工人可以轻松地首次登录和注销。当工作人员注销并尝试立即再次登录时,问题就会出现,我发现错误漂移未定义。我想在代码的漂移部分添加一个延迟,但我不想让工作者等待延迟再次被记录 所以,大约10秒或更长的延迟,但工作人员不应该等待登录。继续在后台检查漂移,并在可用时运行漂移部分,但不应冻结登录。帮我做到这一点 <template> <v-layout row wrap> <v-flex xs12 md7 lg8 > <

我的登录表如下。工人可以轻松地首次登录和注销。当工作人员注销并尝试立即再次登录时,问题就会出现,我发现错误漂移未定义。我想在代码的漂移部分添加一个延迟,但我不想让工作者等待延迟再次被记录

所以,大约10秒或更长的延迟,但工作人员不应该等待登录。继续在后台检查漂移,并在可用时运行漂移部分,但不应冻结登录。帮我做到这一点

<template>
  <v-layout row wrap>
    <v-flex xs12 md7 lg8 >
        <v-layout row wrap>
          <v-flex md12 lg12>
            <div>
              <v-form :model='worker' ref='loginForm'>
                <v-layout row wrap>
                  <v-flex xs12 md6>
                    <v-text-field
                      label='Email Address'
                      v-model='worker.email'
                      name="email"
                      :rules='emailRules'
                      required>
                    </v-text-field>
                  </v-flex>
                  <v-flex xs12 md6>
                    <v-text-field
                      label='Password'
                      v-model='worker.password'
                      name="password"
                      type='password'
                      :rules='passwordRules'
                      required>
                    </v-text-field>
                  </v-flex>
              </v-layout>
                <v-btn @click='login'>Log In</v-btn>
              </v-form>
            </div>
          </v-flex>
        </v-layout>
    </v-flex>
  </v-layout>
</template>

<script>
export default {
  data: function() {
    return {
      worker: {
        email: '',
        password: ''
      },
      error: '',
      emailRules: [
        value => !!value || 'Please enter your email address',
      ],
      passwordRules: [
        value => !!value || 'Please enter a password'
      ]
    };
  },
  methods: {
    login() {
      var that = this;

      if (this.$refs.loginForm.validate()) {
        this.$axios.post('sign_in.json', { user: this.worker }).then(function(response) {
          drift.identify(response.data.worker.id, {
            email: response.data.worker.email
          })
          window.location.href = '/my_account';
        }).catch(function(error) {
          that.error = error;
        });
      }
    }
  }
};
</script>

登录
导出默认值{
数据:函数(){
返回{
工人:{
电子邮件:“”,
密码:“”
},
错误:“”,
电子邮件规则:[
value=>!!value | |“请输入您的电子邮件地址”,
],
密码规则:[
value=>!!value | |“请输入密码”
]
};
},
方法:{
登录(){
var=这个;
if(此.$refs.loginForm.validate()){
this.$axios.post('sign_in.json',{user:this.worker}){
漂移。识别(response.data.worker.id、{
电子邮件:response.data.worker.email
})
window.location.href='/my_account';
}).catch(函数(错误){
错误=错误;
});
}
}
}
};

我不熟悉chatbox/drift,因此我不知道您是如何获得“drift”实例的,但我认为您必须添加某种异步检查以检查“drift”实例的可用性,例如

   login() {
          var that = this;
    
          if (this.$refs.loginForm.validate()) {
            this.$axios.post('sign_in.json', { user: this.worker }).then(async function(response) {
              await getDrift().identify(response.data.worker.id, {
                email: response.data.worker.email
              })
              window.location.href = '/my_account';
            }).catch(function(error) {
              that.error = error;
            });
          }
     

drift
在何处定义?它是一个库,Chatbox在何处/如何定义它与使用它的代码的关系?它是使用Thread安装的,因此当用户注销并尝试立即重新登录时,有时drift不可用,加载它需要时间。由于时间不可用,它会阻止用户登录。因此,这就是我试图实现的,当漂移不可用时,用户仍然可以登录,并在后台将工作人员详细信息发送给漂移