javascript - 将回调转换为 promise

标签 javascript loopback

我正在尝试将一个环回回调函数转换为 Promise,但我无法转换它。代码是

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

有什么方法可以将这种和平的代码转换为 promise 吗?

最佳答案

您想要做的是将 ds.connector.execute 包装在 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,如下所示:

dsConnectorPromise(sql, []).then(data => {

    console.log(data);

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

关于javascript - 将回调转换为 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47405578/

相关文章:

javascript - 类型错误 : [API] is undefined in content script or Why can't I do this in a content script?

javascript - 使用 typescript/javascript 将数组拆分为组

javascript - 网页上所有 id 标签均可进行鼠标操作

angularjs - 声明 2 个 Controller 在单个页面中使用

javascript - 回调已经被调用!在环回中,在 updateAll 函数中

node.js - 如何在一个模型中使用远程方法从另一个模型返回信息?

javascript - 我可以将日程安排作为 ajax 放在 fullcalendar 中吗?

javascript - 为动态创建的 DOM 对象多次触发事件

ip - Loopback 从操作钩子(Hook)中获取 IP 地址

node.js - 最佳实践建议 - Loopback API