此回调的结构是否正确
is this callback structured correctly?
我想保存所有部分,使用刚刚保存的部分的ID更新问题,然后保存问题,然后如果成功触发重定向页面的函数nextPage。我正在尝试确认这是正确的。如果我没有围绕 saveAllQuestions 的匿名功能,这似乎很有趣。
saveAllSections(function () {saveAllQuestions(nextPage)});
更新:
关于saveAllSection的成功,它执行以下操作:
if (typeof(callback) == 'function')
callback();
关于 saveAllQuestions 的成功,它执行以下操作:
if (questionValuesToSave.length>0) {
saveAllQuestionValues(questionValuesToSave, callback);
}
else {
// once its done hide AJAX saving modal
hideModal();
if (typeof(callback) == 'function')
callback();
}
关于saveAllQuestionValues的成功(假设有一些(,它执行以下操作:
if (typeof(callback) == 'function')
callback();
调的一般正确语法,尽管如果不看到更多代码,很难确定。
以下代码
saveAllSections(saveAllQuestions(nextPage));
会失败,因为saveAllQuestions(nextPage)
是执行函数的语法,而不是定义函数。 因此,它将立即执行并将结果传递给saveAllSections
,这将尝试将其用作回调。 由于这可能不是一个函数,而且几乎肯定不是你想要传递的函数,你会得到奇怪的行为,很可能是一个错误。
将其包装在匿名函数中意味着您将一个函数传递给 saveAllSections
,该函数在被外部函数调用或作为回调之前不会执行。
更新:
看起来 saveAllQuestions 根据您的描述也是异步的,因此立即执行它肯定无法正常工作。 如果需要传递参数,匿名函数包装器是完全可以接受的解决方案。
如果你没有,你可以使用
saveAllSections(saveAllQuestions)
saveAllQuestions
包装在匿名函数中的原因是,否则saveAllQuestions
会立即执行,并且其返回值将作为回调传递给saveAllSections
。
如果将saveAllQuestions
包装在匿名函数中,则会阻止saveAllQuestions
立即执行。
在javascript中,你可以将函数作为参数传递。 这允许更简单的代码和异步回调。 在您的尝试中,您不会传入函数。 您执行一个函数,因此saveAllQuestions(nextPage)
的结果将传递到函数中,而不是函数saveAllQuestions
。
希望这个例子有所帮助。
function add(a,b) {
return a+b;
}
function mul(a,b) {
return a*b;
}
function doMath(num1, num2, op) {
return op(num1, num2);
}
document.write( doMath(4,5, add) ); // 9
document.write( doMath(4,5, function (n1,n2) {return n1+n2;}) ); // 9
document.write( doMath(2,5, mul) ); // 10
document.write( doMath(2,5, function (n1,n2) {return n1*n2;}) ); // 10
document.write( doMath( doMath(1,3, add) , 4, mul) ); // 16
- 点击jquery按钮后,是否可以添加相同的现有dom结构
- 在条件(if)结构的条件语句中是否有定义变量的有效方法
- 什么'最合适的数据结构是什么?(使用一个有间隙的数组是否存在缺点或注意事项?)
- 检查嵌套的 JSON 结构是否包含键
- AngularJS:目录结构(例如模块化编程)是否会影响加载时间
- 是否可以将简单的 html 和 javascript 文件结构上传到 heroku
- 柴断言测试对象结构是否至少包含其他对象结构
- 检查结构是否为空:Javascript
- 是否应该将类或 id 添加到 HTML 文档中以获得更好的结构
- 此回调的结构是否正确
- 在Flux体系结构中,全局调度程序是否有害
- 是否有可能把标签后的标签内容,以维持我的html结构
- 是否存在一种数据结构,具有高效的插入/删除,但具有位置排序
- node.js数据结构是否易变/何时在数据结构上使用数据库?
- 如何检查一个对象是否可以通过结构化克隆算法克隆
- 是否可以对这个javascript结构进行单元测试?
- 在extjs4中是否有更好的方法使用以下数据结构创建条形图?
- 相同HTML的DOM结构是否会因浏览器而异?
- 检测对象A中的循环引用在结构上是否与对象B中的循环引用相同
- 是否有任何方法可以在我的Mustache.js模板中的嵌套结构中绕过名称冲突