Class: Dommy::Bridge::PromiseConstructor
- Inherits:
-
Object
- Object
- Dommy::Bridge::PromiseConstructor
- Defined in:
- lib/dommy/bridge.rb
Overview
JS.global[:Promise] view. Implements the resolve / reject
class methods plus new Promise(executor) via __js_new__.
Instance Method Summary collapse
- #__js_call__(method, args) ⇒ Object
-
#__js_new__(args) ⇒ Object
new Promise(executor)— runs executor synchronously with (resolve, reject) callbacks. -
#initialize(window) ⇒ PromiseConstructor
constructor
A new instance of PromiseConstructor.
Constructor Details
#initialize(window) ⇒ PromiseConstructor
Returns a new instance of PromiseConstructor.
199 200 201 |
# File 'lib/dommy/bridge.rb', line 199 def initialize(window) @window = window end |
Instance Method Details
#__js_call__(method, args) ⇒ Object
203 204 205 206 207 208 209 210 |
# File 'lib/dommy/bridge.rb', line 203 def __js_call__(method, args) case method when "resolve" PromiseValue.resolve(@window, args[0]) when "reject" PromiseValue.reject(@window, args[0]) end end |
#__js_new__(args) ⇒ Object
new Promise(executor) — runs executor synchronously with
(resolve, reject) callbacks.
214 215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/dommy/bridge.rb', line 214 def __js_new__(args) executor = args[0] promise = PromiseValue.new(@window) resolve = PromiseSettler.new(promise, fulfilled: true) reject = PromiseSettler.new(promise, fulfilled: false) if executor.respond_to?(:__js_call__) executor.__js_call__("call", [resolve, reject]) elsif executor.respond_to?(:call) executor.call(resolve, reject) end promise end |