回答編集履歴
3
先頭の余計なバッククォートを削除
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
getImage(url) を同期関数にしたいのでしょうか、それとも非同期関数にしたいのでしょうか。
|
2
2
|
|
3
3
|
という質問の意味がもしわからないとしたら、Node.js の基本的な仕組みを理解していないものと思われますので、その勉強が必要だと思います。
|
4
4
|
|
2
表示が崩れるので修正
answer
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
`
|
1
|
+
`getImage(url) を同期関数にしたいのでしょうか、それとも非同期関数にしたいのでしょうか。
|
2
|
+
|
2
3
|
という質問の意味がもしわからないとしたら、Node.js の基本的な仕組みを理解していないものと思われますので、その勉強が必要だと思います。
|
3
4
|
|
4
5
|
現在のコードのまま ```getImage(url)``` が呼ばれるとどうなるか、を説明すると、```headers``` が初期化され、```options``` が初期化され、```request()``` が呼ばれて HTTP リクエストが飛んで ```request()``` から戻ってきます。で、```getImage()``` が終了します。ここに明示的な ```return``` がないので、暗黙的な ```return``` が実行されます。
|
1
曖昧な表現を明確に
answer
CHANGED
@@ -4,5 +4,5 @@
|
|
4
4
|
現在のコードのまま ```getImage(url)``` が呼ばれるとどうなるか、を説明すると、```headers``` が初期化され、```options``` が初期化され、```request()``` が呼ばれて HTTP リクエストが飛んで ```request()``` から戻ってきます。で、```getImage()``` が終了します。ここに明示的な ```return``` がないので、暗黙的な ```return``` が実行されます。
|
5
5
|
で、HTTP のレスポンスが返ってくると、```request()``` の第 2 引数に指定したコールバック関数が呼ばれます。このコールバック関数の中で ```encImg``` を返していますが、受け取る人はいません。
|
6
6
|
|
7
|
-
|
7
|
+
```getImage()``` を呼び出した側で結果を得られるようにするには、```getImage()``` を「同期化する」か、「非同期のまま動くよう、コールバック関数を引数に取るようにする」かします。推奨されるのは後者でしょうね。
|
8
8
|
最初に言った、Node.js の基本的な仕組みを理解していない場合、ここで解決策の具体的なコードを示しても意味がないでしょう。
|