フェッチを使用して変数と関数を理解する際に問題があります。 私はJavascript - 応答が定義されていませんフェッチ
.then(response => response.json())
から
.then(lang => response['lang'].slice(-2)
に応答の値を渡すためにしようとしている。しかし、私は未定義の変数応答エラーを取得していますので、私は正しく変数を参照していませんよ。それを呼び出す正しい方法は何ですか?
また、両方のコンソールログを呼び出すと、以下のコードが現時点では機能しますが、応答関数を上書きする必要があるとは思われません。引数なしで関数を呼び出すことはできますか?
.then(response => console.log(response['text']) & console.log(food))
はconsole.log(レスポンス[ 'テキスト'])&はconsole.log(食品)
fetch("https://localhost:8000", {method:"POST", body:fd})
.then(response => response.json())
.then(lang => response['lang'].slice(-2))
.then(food => "Temporary")
.then(function detectType(lang) {
switch(lang) {
case 'abc':
food = "Bananas";
break;
case 'def':
food = "Apples";
break;
default:
food = "Bananas";
break;
}})
.then(response => console.log(response['text']) & console.log(food))
.catch(err => console.error(err));
}
なぜ、関数 'lang'のパラメータに名前を付けましたか?あなたはそれで何もしていません。 '.then(response => response ['lang']。slice(-2))'(ただし、あなたが何をパラメータと呼んでもかまいません)でなければなりません。パラメータは、定義されている関数でのみアクセスできます。また、[JavaScriptの変数の範囲は何ですか?](https://stackoverflow.com/q/500431/218196) –
これをパラメータに設定すると、レスポンス['text']を呼び出そうとするとどうなりますか?これは{'text': 'a'、 'lang': 'b'}のような種類のjson辞書です – Juanvulcano
"呼び出し"によって単に "アクセス"を意味するならば、文字列 ''a'を返します。例: 'var foo = {text: 'a'}; console.log(foo ['text']); '。 –