ab_testing.coffee 613 B

1234567891011121314151617181920212223242526
  1. define [], () ->
  2. chooseOption = (testName, option1, option2, callback = (error, option) ->) ->
  3. if Math.random() < 0.5
  4. option = option1
  5. else
  6. option = option2
  7. loaded = false
  8. do initTest = ->
  9. return if loaded
  10. if mixpanel?.get_property?
  11. attributes = {}
  12. attributes[testName] = option
  13. mixpanel?.register_once( attributes )
  14. mixpanel?.people.set( attributes )
  15. loaded = true
  16. callback null, mixpanel?.get_property( testName )
  17. else
  18. setTimeout(initTest, 300)
  19. fallback = () ->
  20. return if loaded
  21. loaded = true
  22. callback null, option1
  23. setTimeout fallback, 1500