node.js - util.promisify 旧库调用
问题描述
我一直在摸索如何承诺此调用并在数据可用时将数据返回给另一个函数。
syno.query('/webapi/query.cgi', {
api : 'SYNO.API.Info',
version: 1,
method : 'query',
query : 'ALL'
}, function(err, data) {
if (err) return console.error(err);
console.log(data);
});
有人可以在这里阐明一下吗?我是nodejs的新手
我正在使用的旧库是这个https://www.npmjs.com/package/synology
解决方案
尝试 :
const query = () => new Promise((resolve, reject) => {
syno.query('/webapi/query.cgi', {
api: 'SYNO.API.Info',
version: 1,
method: 'query',
query: 'ALL'
}, function(err, data) {
if (err) reject(err);
resolve(data);
});
})
然后你可以打电话:
query().then(data => { //do something
})
.catch(e => { //do other thing
})