0
我當然有一些理解遞歸的追趕。我有這個退出Elixir的遞歸函數
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
狀態被返回並執行一些動作,並在返回非200
狀態後退出。
代碼看起來正確的給我。你可以嘗試'IO.inspect'每一個返回值,以確保你得到錯誤的情況下回來? – Dogbert
@Dogbert,問題出在API提供者身上,無論出於何種原因,他們開始使用ERROR MESSAGE鍵返回200,他們到現在爲止返回了404。謝謝! – user1232968
您可以在答案中發佈您發現的決議,並將其標記爲答案,以便其他人可以看到問題現已關閉。 –