util.promisify старый вызов библиотеки - PullRequest
0 голосов
/ 02 мая 2020

Я ломал голову над тем, как обещать этот вызов и вернуть данные в другую функцию, когда она станет доступной.

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

1 Ответ

1 голос
/ 02 мая 2020

попробуй:

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