Событие завершено с помощью Opal-jQuery

Я работаю над проектом, который последовательно обрабатывает несколько событий jQuery с помощью оболочки opal-jquery. jQuery имеет очень эффективную функцию обратного вызова, и мне интересно, если это возможно сделать в чистом рубине с Opal.

1 ответ

Решение

Вы можете использовать Promise, который является техникой для управления долгосрочными асинхронными событиями и предотвращения обратного вызова-ада. В обычном Опале вы бы сделали, например:

HTTP.get("url") do |response|
  puts "got response"
end

С обещаниями это становится:

HTTP.get("url").then do |response|
  puts "got response"
end

Разница заключается в then который возвращает обещание (см. http://opalrb.org/docs/promises/). Блок кода будет выполнен, когда HTTP get вернется с содержимым (или с ошибкой).

Также проверьте эту статью о том, как использовать обещания с opal-jquery

http://opalrb.org/blog/2014/05/07/promises-in-opal/

Другие вопросы по тегам