如何在nodejs中使用回调或promise
How to use callback or promises in node js?
你好,我是nodejs中promise和callback的新手我正在使用另一个函数来获取用户列表,该函数使用回调,但失败了。我找到了一个可以使用承诺的地方。但从不使用承诺。有人能帮我写代码吗?
send_noti('12', function(res){
console.log(res);
});
function send_noti(value, callback){
connection.query(" SELECT * from users ", function( err, res ){
callback( res );
});
}
您正在寻找这样的东西:
function sendNotiAsync(value) {
return new Promise((resolve, reject) => // Promise constructor
connection.query("SELECT * from users", (err, data) => // Perform the action
err ? reject(err) : resolve(data))); // If error exists, reject, else resolve
}
并像这样使用:
sendNotiAsync(someValue)
.then(data => {
// Work with data here, for example
console.log(data);
})
.catch(err => {
// Handle errors here
console.error(err);
});
异步函数的节点内回调应始终具有签名function(err, result /*,...*/)
您的示例应该是:
send_noti('12', function(err, res) {
if( !err ) {
console.log(res);
}
});
function send_noti(value, callback) {
connection.query(" SELECT * from users ", callback );
}
除此之外,您的示例没有使用Promises。有了Promises,它看起来是这样的:
send_noti('12')
.then(function(res) {
console.dir(res)
})
.catch(function(err) {
console.dir(err)
})
function send_noti(value, callback) {
return new Promise(function(resolve, reject) {
try {
connection.query(" SELECT * from users ", function(err, res) {
if (err) {
reject(err);
} else {
resolve(res);
}
});
} catch (err) {
reject(err);
}
})
}
相关文章:
- 测试Angular Service解决错误回调中的promise
- Angularjs使用“;这个“;promise内的关键字回调
- 在promise中为回调添加超时并拒绝
- 使用回调hell将构建转换为promise hell
- 将行为与Promise回调混淆
- 与 promise 一起使用时,异步瀑布不执行下一个回调方法
- 如何在原生 JavaScript Promise 中包装 jsonP 回调
- Promise.每个在蓝鸟都有某种所有操作完成的回调吗?
- 在nodejs中将回调转换为promise
- 传递promise回调方法的更好方法
- 如何通过一个回调异步排队和执行多个promise
- Angular promise回调不是在构造函数方法内部触发,而是在对象文本方法中触发
- 如何在nodejs中使用回调或promise
- 如何在Promise回调中访问实例变量
- 绑定promise回调函数的“this”范围
- 为什么不是't Promise中延迟运行的回调
- 通过带有err,value签名的回调创建promise
- 在 Node.js 中用 promise 替换回调
- 使用 promise 的 JavaScript 回调
- 如何使用promise来避免回调地狱