小编Bet*_* St的帖子

AngularJS:在服务中链接http承诺$ q

当谈到angularjs中的$ http承诺时,我遇到了问题.我在我的服务中这样做:( getSomething函数应链接两个promises)

第二个函数使用外部回调函数!

app.service('blubb', function($http, $q) {

  var self = this;

  this.getSomething = function(uri, data) {
    return self.getData(uri).then(function(data2) {
      return self.compactData(uri, data2);
    });
  };

  this.getData = function(uri) {
    var deferred = $q.defer();
    $http.get(uri).success(function(data) {
      deferred.resolve(data);
    }).error(function() {
      deferred.reject();
    });

    return deferred.promise;
  };

  this.compactData = function(uri, data) {
    var deferred = $q.defer();
    /* callback function */
      if(!err) {
        console.log(compacted);
        deferred.resolve(compacted);
      } else {
        console.log(err);
        deferred.reject(err);
      }
    /* end of function */

    return deferred.promise;
  };
});

当我在我的控制器中使用该服务时,它不会输出console.log:

blubb.getSomething(uri, input).then(function(data) {
  console.log(data) …

promise deferred angularjs

8
推荐指数
2
解决办法
9737
查看次数

需要依赖才能获得Rails子类

我有以下设置:

应用程序/模型/ my_module/service.rb

module MyModule
  class Service < ActiveRecord::Base
    def self.types
      self.subclasses
    end

    def self.raw_types
      self.types.map { |c| c.name.split("::").last }
    end
  end
end

require_dependency "my_module/service/rack"
require_dependency "my_module/service/rails"
require_dependency "my_module/service/sinatra"
Run Code Online (Sandbox Code Playgroud)

应用程序/模型/ my_module /服务/ rack.rb:

module MyModule
  class Service::Rack < Service
  end
end
Run Code Online (Sandbox Code Playgroud)

应用程序/模型/ my_module /服务/ rails.rb:

module MyModule
  class Service::Rails < Service
  end
end
Run Code Online (Sandbox Code Playgroud)

应用程序/模型/ my_module /服务/ sinatra.rb:

module MyModule
  class Service::Sinatra < Service
  end
end
Run Code Online (Sandbox Code Playgroud)

这到目前为止工作,但现在我的问题:

为什么我要添加这三行:

require_dependency "my_module/service/rack"
require_dependency "my_module/service/rails"
require_dependency "my_module/service/sinatra"
Run Code Online (Sandbox Code Playgroud)

到我的service.rb文件?

如果我不添加三行:

MyModule::Service.raw_types
=> []
Run Code Online (Sandbox Code Playgroud)

如果我添加三行:

MyModule::Service.raw_types …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-4

8
推荐指数
1
解决办法
5172
查看次数

如何使用omniauth/oauth每秒对登录进行基准测试?(红宝石+ rspec的)

我想基准(自己的)omniauth提供程序每秒可以登录多少次登录.我需要了解这个omniauth/oauth请求的性能如何,以及这种身份验证是否可以扩展?

到目前为止我得到了什么:

    def performance_auth(user_count=10)
      bm = Benchmark.realtime do
        user_count.times do |n|
          fork do
            click_on 'Logout'
            omniauth_config_mock(:provider => "foo", :uid => n, :email => "foo#{n}@example.net")
            visit "/account/auth/foo/"
          end
        end
        Process.waitall
      end
      puts "#{user_count} users Benchmark: #{bm}"
      bm
  end
Run Code Online (Sandbox Code Playgroud)

默认值为10个通过oauth提供程序foo进行并行身份验证的用户.

结果:

only 2 users can authenticate parallel in 1 sec (is this possible?)

10 users: 5.090777 sec
20 users: 10.471208 sec
50 users: 111.565979 sec ~ 2min!!!!
Run Code Online (Sandbox Code Playgroud)

我真的不知道我在做什么,如果这个代码是对的.

ruby benchmarking scalability oauth omniauth

6
推荐指数
1
解决办法
215
查看次数