

現在、JavaScriptの勉強をしている初心者です。  
以下、コードをデバックしており、"let res_ = await this.callApi("  
の箇所で、callApiが未定義ですと怒られてしまいます。

以下コードにはcallApiに関する記述がございませんが、  
確かに記述をしており、”let values = await this.callApi(this.METHOD.GET,....”  
の箇所は実行できていることから、なぜ未定義と怒られるのかがわかりません。  
どのように記述をすれば、読み込んでくれるのでしょうか。

ご教授いただけないでしょうか。よろしくお願い致します。

[code]

    async test() {
          const {hennsu1, hennsu2,hennsu3} = this.info;
          // Get global IP
          const network_info = await fetch(this.GET_GLOBAL_IP)
            .then(res => res.json())
    
          let values = await this.callApi(this.METHOD.GET,`${this.URL_ENDPOINT.AAAA}/${this.AAAA.XXXXXXXX}`);
    
          var camera_url = ''
          var success_code = this.STATUS_CODE.SUCCESS
    
          if (values && values.code == this.STATUS_CODE.SUCCESS) {
            let duration = null
            bootbox.prompt({
                title: this.title,
                message: this.messege,
                inputType: 'radio',
                inputOptions: [{
                    text: values.payload[0].explanation,
                    value: values.payload[0].value
                },
                {
                    text: values.payload[1].explanation,
                    value: values.payload[1].value
                }],
                callback: async function (result) {
                  if (result != null){
                    let res_ = await this.callApi(
                      this.METHOD.GET,
                      `${this.URL_ENDPOINT.xxx}/${network_info.ip}/${result}/${hennsu1}/${hennsu2}`);
    
                    if (res_ && res_.code == success_code) {
                      camera_url = `http://${res_.payload.xxxx}:${res_.payload.xxxxX}/${hennsu3 === null? '' : hennsu3}`;
                      window.open(camera_url, '_blank');
                    }
                  }
                }
            });
          } else {
            const msg = res && res.message? res.message: this.UNEXPECTED_ERR;
            bootbox.alert(msg);
          }
        },
    
[/code]


CC BY-SA 4.0
2022-04-20T02:52:02.650
88408
2022-04-20T05:09:30.707
2022-04-20T03:10:29.290
3060
50785
question
javascript vue.js
javascriptでthisが未定義と怒られてしまう


この `callback: async function (result) {` が呼ばれるときに `this` が何になるのかは
`bootbox.prompt()` の仕様実装に依存します。

アロー関数に変えるとか `.bind(this)` を付けるなどで `this` を固定しましょう。


CC BY-SA 4.0
2022-04-20T05:09:30.707
88410
2022-04-20T05:09:30.707
3475
88408
answer