0

以下の関数(クラス内で定義されていMyclassます)では、ルビーのように関数を実行できます

myoutput =  Myclass.get_par("http://eol.org/api/ping/1.0.json,http://eol.org/api/ping/1.0.json")

呼び出しの出力は端末に出力されますが、出力はobject に割り当てられていませんmyoutput

印刷するだけでなく、出力をオブジェクトに戻す方法はありますか?

def self.get_par(urls)
  allurls = urls.split(',')
  results = []
  EM.synchrony do
    concurrency = 2
    results << EM::Synchrony::Iterator.new(allurls, concurrency).map do |url, iter|
      http = EventMachine::HttpRequest.new(url).aget
      http.callback { iter.return(http.response) }
      http.errback { iter.return(http) }
    end
    EventMachine.stop
    puts results # all completed requests
  end
end
4

2 に答える 2

0

putsを返すnilので、 の結果を返すputsことはあまり役に立ちません。

代わりに戻るresultsか、両方を実行します。

def self.get_par(urls)
  # ... etc ...
  puts results
  results
end
于 2013-04-17T17:30:33.183 に答える