title: How to use ES6 arrow functions with promise binding (bluebird)
body: <p>I'm using babel's <a href="https://babeljs.io/docs/usage/require/" rel="nofollow">require hook</a> in node to leverage ES6 but I'm running into some challenges with arrow functions in bluebird promise chains.</p>
  
  <p>I use <code>.bind({})</code> at the top of my promise chain with an empty object to create shared state where I can store previous values until I need them further down the chain. Bluebird explains this usage as a "<a href="https://github.com/petkaantonov/bluebird/blob/master/API.md#binddynamic-thisarg---promise" rel="nofollow">useful side purpose</a>".</p>
  
  <p>When I switch to arrow functions, I can no longer use shared state because arrow functions use lexical <code>this</code> which is <code>undefined</code> in babel (babel automatically runs in strict mode).</p>
  
  <p>Working example: <a href="https://jsbin.com/veboco/edit?html,js,console" rel="nofollow">https://jsbin.com/veboco/edit?html,js,console</a></p>
  
  <p>ES6 example (not working): <a href="https://jsbin.com/menivu/edit?html,js,console" rel="nofollow">https://jsbin.com/menivu/edit?html,js,console</a></p>
  
  <p>Is there any way to take advantage of arrow functions in this situation? In my code I call these methods from within an object method - shouldn't <code>this</code> be defined as the object from which the method is called?</p>