I'm not sure the best way to handle the progress part of this, but this is a promise anti-pattern. You should just be doing:

```javascript
return listObjects(self.bucketName, lastProcessedKey);
```