jQuery Get Callback関数からの値を返します
-
26-12-2019 - |
質問
あなたが私がこの関数を修正するのを手伝ってくれるなら私にとって非常に役に立つでしょう:
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 は、await
とdefer
で非同期制御フローを合理化するのに役立ちます。これが私が達成しようとしたことです。コード構造は私がそれを描いた方法です
# 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でコンパイルするものを見る(例えば、this
とthis
の使用の間の差分を見てください)。あなたはあなたのコーヒーを編集します)
所属していません StackOverflow