我使用dynogels作为包装AWS dynamoDB表的框架,我用它来删除dynamoDB表上的项目,它们提供的函数是回调函数。
https://github.com/clarkie/dynogels //文档
// Destroy model using hash and range key
BlogPost.destroy('foo@example.com', 'Hello World!', function (err) {
console.log('post deleted')
});
但是我想使用promise而不是回调,那么我在想是否可以将Promise.resolve放入回调中?
BlogPost.destroy('foo@example.com', 'Hello World!', Promise.resolve())
.then(()=>{
console.log('post deleted')
});
如何进行回调以返回承诺?到目前为止,我无法想到这一点。
答案 0 :(得分:0)
有一个简单的工具,即util.promisify
https://nodejs.org/api/util.html#util_util_promisify_original
let util = require('util')
// create a copy and call it yourself ...
util.promisify(BlogPost.destroy).call(BlogPost, 'foo@example.com', 'Hello World!')
.then(()=>{
console.log('post deleted')
});
// ... or create a alternative method:
BlogPost.prototype.destroyPromises = util.promisify(BlogPost.destroy)
// later
BlogPost.destroyPromises('foo@example.com', 'Hello World!')
.then(()=>{
console.log('post deleted')
});