首页 > 解决方案 > 试图从类中的另一个方法调用一个方法,得到一个 TypeError

问题描述

所以,我有两种方法可以在 Trello 板上添加/更新卡片。它们都在一个类中声明,updateWatchlistCard 在第二个方法 addWatchlistCard 之前声明。当我在 addWatchlistCard 中调用 updateWatchlistCard 时,我的代码中出现以下错误:TypeError: undefined is not a function。

我不确定这里到底出了什么问题或为什么这样做。我试过重新排列代码,重写函数,但都没有奏效。

async updateWatchlistCard([cardData], card){

       console.log('fired updatewatchlistcard');
       //* Attempt to grab user data.
       try{
           var userId = await noblox.getIdFromUsername(cardData.Username);
           var properUsername = await noblox.getUsernameFromId(userId);
       }catch(error){
           return false;
       }

       //* Adds the check to the card.
       await Trello.addCommentToCard(card.id, 
          `**Moderator:** ${cardData.ModeratorName}:${cardData.ModeratorId}` +
          `\n**Suspicion:** ${cardData.Suspiscion}` +
          `\n**Evidence:** ${cardData.Evidence}` + 
          `\n**Comments:** ${cardData.Comments}`
       );

       return {value: '**Card updated successfully!**', cardName: card.name, cardUrl: card.url};
   }```

  ``` async addWatchlistCard([cardData]){

       // First search and see if the card already exists.
       var cardExists = await this.getModerationCard(cardData.Username, cardData.WatchlistId, cardData.BoardId);

       if(!cardExists){   
           //Tries getting new data for the card.
           try{
               var userId = await noblox.getIdFromUsername(cardData.Username);
               var properUsername = await noblox.getUsernameFromId(Number(userId));
           }catch(error){
               return false;
           }
           // Data for card fields.
           var cardTitle = (`${properUsername}:${userId}`);
           var cardDesc = (`Moderator: ${cardData.ModeratorName}:${cardData.ModeratorId}` + `\nSuspected of: ${cardData.Suspicion}` + `\nEvidence: ${cardData.Evidence}` + `\nComments: ${cardData.Comments}`);

           // Create the new card.
           var newCard = await Trello.addCard(cardTitle, cardDesc, cardData.WatchlistId);

           return {value: '**Card created successfully**', cardName: newCard.name, cardUrl: newCard.url};

       }else{
           console.log('got here.');
           let response = this.updateWatchlistCard(cardData, cardExists);
           return response;
       }
   } ```

标签: javascriptnode.jstrello

解决方案


更新:我发现这与我在 updateWatchlistCard 方法中编写参数的方式有关。谢谢!


推荐阅读