我正在尝试将一个环回回调函数转换为 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/