Асинхронные функции в coffeescript - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь заставить функцию выполняться асинхронно, как в следующем блоке кода:

asyncSearch = (e) ->
    await search(e)

$("#main-search").on("input", (e) ->
    clearTimeout(delayTimer)
    delayTimer = setTimeout( ->
        asyncSearch(e)
    , 100)
)

#Method for searching

search = (input) ->
    new Promise (resolve) ->
        loadedAlbums = 40
        toggleAlbum(sibling: undefined)
        //more code
        ....

Однако, это не компилируется, как я ожидал.Вместо этого он компилируется в:

 asyncSearch = function(e) {
  return await(search(e));
};

$("#main-search").on("input", function(e) {
  clearTimeout(delayTimer);
  return delayTimer = setTimeout(function() {
    return asyncSearch(e);
  }, 100);
});

search = function(input) {
  return new Promise(function(resolve) {
    var album, doSearch, inputValues, k, l, len, m, rawInput, ref, tempAlbums;
    loadedAlbums = 40;
    //more code
    ...

Ошибка, которую я тогда получаю, по понятным причинам - это ReferenceError, где «await» не определено.

Есть идеи?

...