首页 > 解决方案 > 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

标签: node.jsnode-promisify

解决方案


尝试 :

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
    })

推荐阅读