-1

この機能を修正するのを手伝ってくれれば、私にとって非常に役に立ちます。

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関数が値を返すことができるように、コールバックから結果をフェッチしたいと思います。

4

2 に答える 2

1

コールバックのポイントは、非同期であることです。応答はコールバックに入るため、コールバックからの残りの実行を処理する必要があります (たとえば、console.log res同じ同期の一部であるため、コールバックが呼び出される前に が実行されます)。あなたの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

追加の注意: ここでは太い矢印は不要です。参照するものを再バインドするために使用されますが、コールバックでthisはまったく参照していません。thisコーヒーを学んでいる場合、ほとんどのエディターには、コーヒーを JS にすばやくコンパイルするためのプラグイン/モジュールがあるため、それを使用して、特定のコーヒー構文が JS でコンパイルされるものを確認します (たとえば、使用時とコンパイル時の違いを見て->ください=>)。あなたのコーヒー)

于 2014-04-14T21:51:09.000 に答える