質問

あなたが私がこの関数を修正するのを手伝ってくれるなら私にとって非常に役に立つでしょう:

textParseQuery = (txtSnippet) ->    
    queryUrl = "http://localhost:8083/txtParse/#{txtSnippet}"
    console.log queryUrl
    callback = (response) => 
        parsed = $.parseJSON response
        companies = parsed.map (obj) -> new Company(obj.name, obj.addr)
        companies
    res = $.get queryUrl, {}, callback
    console.log res
.

textParseQuery関数が値を返すことができるように、コールバックから結果を取得したいと思います。

役に立ちましたか?

解決 2

私は icedCoffeeScript は、awaitdeferで非同期制御フローを合理化するのに役立ちます。これが私が達成しようとしたことです。コード構造は私がそれを描いた方法です

# Search for 'keyword' on twitter, then callback 'cb'
# with the results found.
search = (keyword, cb) ->
  host = "http://search.twitter.com/"
  url = "#{host}/search.json?q=#{keyword}&callback=?"
  await $.getJSON url, defer json
  cb json.results
.

他のヒント

コールバックのポイントは非同期です、応答はコールバックに入っているので、コールバックからの実行の残りの部分を処理する必要があります(たとえば、コールバックが呼び出される前に、Callbackが呼ばれる前に実行される予定です。Ajax呼び出しの同期実行の実行。

textParseQuery = (txtSnippet) ->    
    queryUrl = "http://localhost:8083/txtParse/#{txtSnippet}"
    callback = (response) -> 
        parsed = $.parseJSON response
        companies = parsed.map (obj) -> new Company(obj.name, obj.addr)

        # proceed from here
        console.log companies
    $.get queryUrl, {}, callback
.

追加注:FAT矢印はここでは不要です。これは、console.log resの参照を再バインドするために使用されますが、CirlbacketagCodeはすべてコールバックに含まれていません。あなたがコーヒーを学んでいるならば、ほとんどの編集者はJSにコーヒーを素早くコンパイルするためのプラグイン/モジュールを持っているので、それを使用して、特定のコーヒー構文がJSでコンパイルするものを見る(例えば、thisthisの使用の間の差分を見てください)。あなたはあなたのコーヒーを編集します)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top