Javascript 将回电转换为承诺
我试图将一个环回回调函数转换为promise,但无法转换它。的代码是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
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
变量