title: The variable inside of node-horseman evaluate is undefined
body: <p>My application has API endpoints which one of them is for deleting. The unique <code>data-id</code> is passed by parameter <code>/feeds/:feedID</code>, that accesses the Controller class, giving the param value to the Operation class' variable <code>feedID</code>. Issue: the variable <code>feedID</code> becomes <code>undefined</code> inside of <code>horseman</code> instance. Codes:</p>
  
  <p><strong>Controller:</strong> Executed when accessing the endpoint. It grabs the parameter value and stores in the Operation class' variable for further use</p>
  
  <pre><code>* destroy(request, response) {
    const googleAlertsOperation = new GoogleAlertsOperation()
  
    googleAlertsOperation.feedID = request.param('feedID')
    ...
  </code></pre>
  
  <p><strong>Operation:</strong> With a new <code>feedID</code> value, it should proceed with its execution</p>
  
  <pre><code>* deleteRSSFeed() {
    var feedID = this.feedID //&lt;-- Has the value passed from the Controller
  
    return new Promise((resolve, reject) =&gt; {
      horseman
        .userAgent(this.userAgent)
        .open('https://google.com/alerts')
        .evaluate(function() {
          try {
            return '#manage-alerts-div li[data-id="' + feedID + '"]' //&lt;-- Undefined
          } catch(e) {
            reject(e)
          }
        }).then(function(data) {
          console.log(data)
        })
        .close()
    }).catch((err) =&gt; {
      this.addError(HTTPResponse.STATUS_INTERNAL_SERVER_ERROR, reject(err))
  
      return false
    })
  }
  </code></pre>
  
  <p>I tried it without instantiating a new Promise, but same issue. Instead of passing a variable <code>feedID</code>, created at the top, passing <code>this.feedID</code> also turns <code>undefined</code>.</p>