承诺 gem 试图成为和定义的JavaScript PromiseRuby版本。安装此gem,将以下行添加到应用程序的Gemfile中:


gem 'a-ruby-promise'

然后执行:


$ bundle

或者自己安装:


$ gem install a-ruby-promise

用法

创建承诺


Promise.new do

  begin

    # 执行一些计算

    value = 42  # 计算结果

    fulfill(value)

  rescue Exception => e

    reject(e)

  end

end

创建一个新的承诺,如果它在超时期限之前没有完成,它将被拒绝:


def timeout_promise(promise, timeout)

  # 代码实现

end