I am using the Vogels library to interact with DynamoDb. AModel below is a model I have defined using vogels.define() and here is a snippet of code that I can not get working:
var Promise = require('bluebird')
Promise.promisifyAll(AModel);
var query = AModel
.query(1)
.usingIndex('a-index')
Promise.resolve(query.exec()).then(
function(output) {
console.log(output)
})
output is:
{
"_readableState": {
"highWaterMark": 16384,
"buffer": [],
"length": 0,
"pipes": null,
"pipesCount": 0,
"flowing": false,
"ended": false,
"endEmitted": false,
"reading": false,
"calledRead": false,
"sync": true,
"needReadable": false,
"emittedReadable": false,
"readableListening": false,
"objectMode": true,
"defaultEncoding": "utf8",
"ranOut": false,
"awaitDrain": 0,
"readingMore": false,
"decoder": null,
"encoding": null
},
"readable": true,
"domain": null,
"_events": {},
"_maxListeners": 10
}
How do I turn query.exec() into a bluebird promise? With Q, I would just use
q.ninvoke(query, 'exec').