Событие завершено с помощью 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