如何从条件异步函数调用回调
How to call a callback from a conditional async function
给定以下代码:
var something = function(callback) {
if(condition) {
Mongoose.findOne(id, function(err, doc) {
if(doc) {
callback(doc);
} else {
callback();
}
});
} else {
callback();
}
}
我如何用一种更干净的方式重写它,这样'callback'只在一个地方被调用。我假设我可以把这整个东西包装起来——我看到过,但不能完全正确。
既然您说调用回调有复杂的步骤,请尝试下面的
var something = function(callback) {
var callCallback = function(doc){
//do all other things you want to do to call the callback
callback(doc);
};
if(condition) {
Mongoose.findOne(id, function(err, doc) {
if(doc) {
callCallback(doc);
} else {
callCallback();
}
});
} else {
callCallback();
}
}
var something = function (callback) {
var f = function (e, d) { callback(d) };
if (condition) {
Mongoose.findOne(id, f);
} else {
f();
}
}
我的理由是,如果d
是false
,那么我们仍然可以将其传递给callback
,这几乎等同于不传递任何参数。
相关文章:
- 为什么(如何)'这'从函数内部调用回调时发生更改
- 在初始函数完成之前调用回调函数
- 加载文件,然后调用回调函数
- 调用函数和回调函数有什么区别
- 如何使用另一个 JavaScript 文件中定义的类名调用回调函数
- ReactJs:this.setState的情况下不调用回调函数
- 为从AJAX调用中utlizes DATA参数的函数定义回调
- 如何在另一个函数的回调中调用JavaScript函数
- setTimeout()在其设置时间之前连续调用回调函数
- Ajax 调用重新加载页面,而不是调用回调函数
- 未调用回调函数
- 如何在循环中编写对立即调用的函数的回调
- Node.js:如何从函数的回调再次调用函数
- 如何在 javascript 中调用回调函数
- 是否保证传递给 always 函数的回调将在函数(数据)回调完成其工作后调用
- 节点.js在回调中调用回调函数
- 调用 js 函数和回调函数的 OnClick 事件
- JavaScript String.replace:如何知道上次调用回调函数
- 在 $.each 中调用函数的回调
- 如何从条件异步函数调用回调