возвращает значение из функции обратного вызова jquery get

StackOverflow https://stackoverflow.com//questions/23059034

Вопрос

Мне было бы очень полезно, если бы вы помогли мне исправить эту функцию:

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 помогает оптимизировать асинхронный контрольный поток с генеракодицетагкодом и генеракодицетагкодом.Это то, что я пытался достичь.Структура кода - это то, как я изобразил его

# 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
.

Другие советы

Смысл обратного вызова в том, что он асинхронный, ваш ответ приходит в обратном вызове, поэтому вам нужно обработать остальную часть выполнения из обратного вызова (например, 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 вообще в вашем обратном вызове.Если вы изучаете coffee, у большинства редакторов будут плагины / модули для быстрой компиляции coffee в JS, поэтому используйте это, чтобы увидеть, как данный синтаксис coffee компилируется в JS (например, взгляните на разницу между использованием -> и => когда вы готовите свой кофе)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top