this.dorequest()から返された後にグローバル変数となる 'key'にアクセスしたいとします。 ifブロック内にキーを取得しますが、外部のどこにでもアクセスすることはできません。誰かが助けてくれますか?確かにそれはスコープ/巻上げの問題です。前もって感謝します!Javascriptスコープ - スコープ外の値にアクセスできない
答えて
。 varステートメントを削除するだけです。
さらに、console.logステートメントに到着する前に終了していない非同期呼び出しでキー変数を割り当てます。 console.logステートメントをコールバック関数に移動するか、コールバックが完了したときにconsole.logステートメントをトリガするイベントを作成します。
おそらく、非同期コールバック内でグローバルを使用することはお勧めできません。私はあなたのreturn文が何かをしているかどうかは確かではありませんが(使用しているライブラリのAPIに依存しますが)、キー変数を割り当てることはありません。
私はそれを削除しました。しかし、ブロックの外側でreturn文を使用する必要がありますか? hello key undefined ポートでリスンするアプリケーション:8000 これは応答キーです。RES123 –
別の問題があります。非同期呼び出し中に値を割り当てます。つまり、コンソールのログステートメントに入る前にコールが終了していない可能性があります。 console.logステートメントをコールバック関数に移動します。コールバックステートメントでグローバル変数を割り当てるのは良い考えではありません。なぜなら、いつ変化するのか分からないからです。それを楽しくするために、console.logステートメントを無限ループに入れることもできます。 –
window.key
をご利用ください。すべてのグローバルJavaScriptオブジェクト、関数、および変数は、自動的にウィンドウオブジェクトのメンバーになります。あなたはそれその範囲内で別の変数になりブロックスコープでそれを再定義する意味ブロックの内側
var key;
を使用している
コードをクロージャーで囲むか、ウィンドウにキーを追加します。
つまり、window.key = undefined;
は重要な変数グローバル
すなわちwindow.key = undefined.
はまたresponse.body.key
の値をチェッククロージャ内のコードを追加したり、作るのどちらか
- 1. 外部スコープのアクセス変数
- 2. Javascriptメンバー関数スコープ外
- 3. viewModelにアクセスviewModelのスコープ外の
- 4. JavaScript内のスコープ外のInstagramデータにアクセスする
- 5. readFileの外部スコープ変数にアクセス
- 6. スコープ外のクラスデータにアクセスする
- 7. スコープの外で関数の結果にアクセスできません
- 8. ラムダ式は、スコープ外のクラスのプライベートメソッドにアクセスできますか?
- 9. ng-repeatスコープ外のオプション値にアクセスしました
- 10. は外側のスコープから値にアクセスする
- 11. 簡単な例ではスコープにアクセスできない
- 12. 関数スコープ外の変数へのアクセス
- 13. JavaScriptスコープ
- 14. スカラリフトのスコープ付きjavascriptコールバック
- 15. 角2 - SignalRスコープのコンポーネントメンバー/メソッドにアクセスできない
- 16. JavaScriptファンクションレベルのスコープ
- 17. HTMLからスコープ変数にアクセスできない
- 18. Spring WebSocketハンドラ( "websocket"スコープではない)内の "session"スコープBeanへのアクセス方法
- 19. JavaScriptホイストとスコープ
- 20. javascript変数スコープ
- 21. js:クロージャのスコープにアクセス
- 22. 外側スコープで定義された変数の内部スコープ変更値
- 23. 外部スコープの変数にアクセスしていますか?
- 24. AngularJSのスコープ値
- 25. スコープのJavaScriptスコープを複数のファイルに分割する方法(Ubuntu JSスコープ)
- 26. Javascriptのクラスとスコープ
- 27. Jqueryとjavascriptのスコープ
- 28. Javascriptスコープの問題
- 29. javascriptのバインドとスコープ
- 30. Javascriptスコープの問題
が重複する可能性[私は非同期呼び出しからの応答を返すにはどうしますか?]( http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) –