0
再帰の理解に追いつくことはあります。私はこのエリクシールの再帰関数を終了
def query_url(id,page_number) do
returned_response = HTTPoison.get! "https://some_web_page/#{id}/? pageNumber=#{page_number}"
case returned_response.status_code do
200 ->
{:ok,returned_response.body}
_ ->
{:error,:not_found}
end
end
んだ...と
def recursive_function(id,page_number) do
case query_url(id,page_number) do
{:ok,response} ->
non_recusive_function(response)
recursive_function(id,page_number + 1)
{:error, :not_found} ->
IO.puts "Exited"
end
end
がrecursive_function(1234,1)
と仮定すると、それは再帰関数は一度query_url/2
戻り{:error, :not_found}
出るだろうが、それは場合、再帰呼び出しではないというのが私の考えていました終了しません。
私がしようとしているのは、200
ステータスが返されていれば、特定のURLへのリクエストを行い、ステータスが返されていないときに終了することです。 @Dogbertへ
で
case
を置き換えます。あなたは 'IO.inspect'をすべての戻り値で試して、エラーケースを取り戻すことができますか? – Dogbert@Dogbert、IssueはAPIプロバイダとの関係で何らかの理由で、今まで404を返していたERROR MESSAGEキーで200を返し始めました。ありがとう! – user1232968
発見した解決策を回答に投稿し、それを回答としてマークして、他の人が質問が現在閉じられているのを見ることができます。 –