Javascript 将回电转换为承诺

Javascript 将回电转换为承诺,javascript,loopback,Javascript,Loopback,我试图将一个环回回调函数转换为promise,但无法转换它。的代码是 let ds = app.datasources.ace_db ds.connector.execute(sql,[],(err, data ) => { console.log('datalogger', data); }); 有没有什么方法可以将这种代码的和平转换为承诺 您要做的是包装您的ds.connector。在Promise中执行,然后返回该Promise,如下所示: const dsConnector

我试图将一个环回回调函数转换为promise,但无法转换它。的代码是

let ds = app.datasources.ace_db
ds.connector.execute(sql,[],(err, data ) => {
   console.log('datalogger', data);
});

有没有什么方法可以将这种代码的和平转换为承诺

您要做的是包装您的
ds.connector。在
Promise
中执行
,然后返回该
Promise
,如下所示:

const dsConnectorPromise = function(sql, arr) {

    let p = new Promise((resolve, reject) => {

        ds.connector.execute(sql, arr, (err, data) => {

            if(err) reject(err);
            else resolve(data);
        });
    });

    return p; // return promise
};
dsConnectorPromise(sql, []).then(data => {

    console.log(data);

}).catch(err => console.log(err));
然后,您可以继续使用
dsConnectorPromise
如下所示:

const dsConnectorPromise = function(sql, arr) {

    let p = new Promise((resolve, reject) => {

        ds.connector.execute(sql, arr, (err, data) => {

            if(err) reject(err);
            else resolve(data);
        });
    });

    return p; // return promise
};
dsConnectorPromise(sql, []).then(data => {

    console.log(data);

}).catch(err => console.log(err));

您要做的是包装您的
ds.connector。在
Promise
中执行
,然后返回该
Promise
,如下所示:

const dsConnectorPromise = function(sql, arr) {

    let p = new Promise((resolve, reject) => {

        ds.connector.execute(sql, arr, (err, data) => {

            if(err) reject(err);
            else resolve(data);
        });
    });

    return p; // return promise
};
dsConnectorPromise(sql, []).then(data => {

    console.log(data);

}).catch(err => console.log(err));
然后,您可以继续使用
dsConnectorPromise
如下所示:

const dsConnectorPromise = function(sql, arr) {

    let p = new Promise((resolve, reject) => {

        ds.connector.execute(sql, arr, (err, data) => {

            if(err) reject(err);
            else resolve(data);
        });
    });

    return p; // return promise
};
dsConnectorPromise(sql, []).then(data => {

    console.log(data);

}).catch(err => console.log(err));
你可以做一个

你可以做一个


显示您尝试的不起作用的内容可能重复。检查与环回中的承诺支持相关的问题。您还可以使用异步npm包显示您尝试的不可行的内容可能重复。检查这个与环回中的承诺支持相关的问题。您也可以使用异步npm包,或者只需执行
返回新承诺((解析,拒绝).
操作,而无需分配给
p
变量,或者只需执行
返回新承诺((解析,拒绝).
操作,而无需分配给
p
变量