代码之家  ›  专栏  ›  技术社区  ›  Sameer

全局变量在开关内部不工作-javascript

  •  0
  • Sameer  · 技术社区  · 6 年前
     let visitor;
     const role = req.user.profile;
    
     // role will be either Admin or Manager
    
     switch (role) {
       case 'Admin':
         if (req.body.verificationMode === 'online') {
           visitor = {
             name: req.body.name,
             mode: 'online',
           };
         } else {
           visitor = {
             name: req.body.name,
             mode: 'offline'
           };
         }
         break;
    
    
       case 'Manager':
         Staff.findOne({
           where: {
             loginId: req.user.id,
           },
         }).then((staffData) => {
           if (req.body.verificationMode === 'online') {
             visitor = {
               name: req.body.name,
               mode: 'online',
             };
           } else {
             visitor = {
               name: req.body.name,
               mode: 'offline',
             };
           }
         });
         break;
    
     }
     console.log('visitor >>> >> >> >> >>> >>>> >>>> >>>> >>> >>>> >>>', visitor);
    

    如果我以 行政 角色,访问者的控制台,具有正确的数据,但如果登录为 经理 角色,访客的控制台 .

    为什么会这样?我使用ES6,所以我不使用var。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Aagam Jain    6 年前

    用这个。

     let visitor;
     const role = req.user.profile;
     let callback = function(){
         console.log('visitor >>> >> >> >> >>> >>>> >>>> >>>> >>> >>>> >>>', visitor); 
     }
     // role will be either Admin or Manager
    
    
    
     switch (role) {
       case 'Admin':
         if (req.body.verificationMode === 'online') {
           visitor = {
             name: req.body.name,
             mode: 'online',
           };
         } else {
           visitor = {
             name: req.body.name,
             mode: 'offline'
           };
         }
         callback();
         break;
    
    
       case 'Manager':
         Staff.findOne({
           where: {
             loginId: req.user.id,
           },
         }).then((staffData) => {
           if (req.body.verificationMode === 'online') {
             visitor = {
               name: req.body.name,
               mode: 'online',
             };
           } else {
             visitor = {
               name: req.body.name,
               mode: 'offline',
             };
           }
           callback();
         });
         break;
    
     }
    

    移动 console.log 一个函数 visitor 值已初始化。