# frozen_string_literal: true require "em_promise" module EM def self.promise_defer(klass: EMPromise, &block) promise = klass.new EventMachine.defer( block, promise.method(:fulfill), promise.method(:reject) ) promise end end