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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Angular 中的問題“Uncaught (in promise) TypeError”

Angular 中的問題“Uncaught (in promise) TypeError”

FFIVE 2023-06-15 09:47:19
我正在嘗試在 Angular 中實(shí)現(xiàn)基于 RiveScript 的聊天機(jī)器人。聊天機(jī)器人工作得很好——我總是在控制臺(tái)中得到正確的答案。顯示用戶的輸入也很有效。但是,我總是卡在一點(diǎn):由于以下錯(cuò)誤,在聊天 UI 中顯示聊天機(jī)器人的答案:ERROR?Error:?Uncaught?(in?promise):?TypeError:?this?is?undefined我真的嘗試了很多東西,但我找不到問題所在。從我的角度來看,這也有點(diǎn)令人困惑,因?yàn)槲铱梢栽诳刂婆_(tái)中獲得正確的聊天機(jī)器人消息。如果有人能幫我解決這個(gè)問題,我會(huì)很高興!這是我的源代碼,所以你可以看到代碼有效。converse(msg: string) {? ? const userMessage = new Message(msg, 'user'); //gettng user message? ? this.update(userMessage);?? ?? ? var bot = new RiveScript({utf8: true}); // initializing bot? ? ?? ? bot.loadFile('/assets/brain/test.rive').then(loading_done); // loading bot brain? ? function loading_done() {? ? ? console.log("Chatbot initialized!");?? ? ? bot.sortReplies();? //sorting replies?? ??? ? ? let username = "user";? ? ??? ? ? return bot.reply(username, msg).then(answer => { //getting chatbot answer? ? ? ? console.log("User: " + msg);? ? ? ? console.log("Chatbot: " + answer);? ? ? ? const result = answer;?? ? ? ? const botMessage = new Message(result, 'bot');??? ? ? ? this.update(botMessage);? ? ? });?? ? }? }
查看完整描述

2 回答

?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

嘗試


converse(msg: string) {


    const userMessage = new Message(msg, 'user'); //gettng user message

    this.update(userMessage); 

   

    var bot = new RiveScript({utf8: true}); // initializing bot

     

    const loading_done = (bot) => ()=> {

      console.log("Chatbot initialized!"); 

      bot.sortReplies();  //sorting replies 

    

      let username = "user";

      

      return bot.reply(username, msg).then(answer => { //getting chatbot answer

        console.log("User: " + msg);

        console.log("Chatbot: " + answer);

        const result = answer; 

        const botMessage = new Message(result, 'bot');  

        this.update(botMessage);

      }); 

    } 


  bot.loadFile('/assets/brain/test.rive').then(loading_done(bot)); // loading bot brain


  }

或者


   loading_done(bot){ 

return  ()=> {

const that = this;

      console.log("Chatbot initialized!"); 

      bot.sortReplies();  //sorting replies 

    

      let username = "user";

      

      return bot.reply(username, msg).then(answer => { //getting chatbot answer

        console.log("User: " + msg);

        console.log("Chatbot: " + answer);

        const result = answer; 

        const botMessage = new Message(result, 'bot');  

        that.update(botMessage);

      }); 

    } 

}


converse(msg: string) {


    const userMessage = new Message(msg, 'user'); //gettng user message

    this.update(userMessage); 

   

    var bot = new RiveScript({utf8: true}); // initializing bot

     



  bot.loadFile('/assets/brain/test.rive').then(this.loading_done(bot).bind(this)); // loading bot brain


  }

但我相信第一個(gè)解決方案更清楚


查看完整回答
反對(duì) 回復(fù) 2023-06-15
?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

this使用箭頭函數(shù)代替定義自己的上下文的函數(shù):


const loading_done = () => {

      console.log("Chatbot initialized!"); 

      bot.sortReplies();  //sorting replies 

    

      let username = "user";

      

      return bot.reply(username, msg).then(answer => { //getting chatbot answer

        console.log("User: " + msg);

        console.log("Chatbot: " + answer);

        const result = answer; 

        const botMessage = new Message(result, 'bot');  

        this.update(botMessage);

      }); 

    }

當(dāng)您使用打字稿時(shí),您還可以將 loading_done 設(shè)為私有函數(shù):


converse(msg: string) {


    const userMessage = new Message(msg, 'user'); //gettng user message

    this.update(userMessage); 

   

    var bot = new RiveScript({utf8: true}); // initializing bot

     

    bot.loadFile('/assets/brain/test.rive').then(this.loadingDone); // loading bot brai

  }


// Use camel case instead of snake case in typescript.

private loadingDone = () => {

      console.log("Chatbot initialized!"); 

      bot.sortReplies();  //sorting replies 

    

      let username = "user";

      

      return bot.reply(username, msg).then(answer => { //getting chatbot answer

        console.log("User: " + msg);

        console.log("Chatbot: " + answer);

        const result = answer; 

        const botMessage = new Message(result, 'bot');  

        this.update(botMessage);

      }); 

}


查看完整回答
反對(duì) 回復(fù) 2023-06-15
  • 2 回答
  • 0 關(guān)注
  • 232 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)