是否可以在javascript函数中多次返回
我的函数从存储中删除数据,但同时我希望保存删除时间,因此我尝试使用return两次,这与我在函数中编写的一样正确,还是会导致以后出现问题?谢谢你的帮助是否可以在javascript函数中多次返回,javascript,Javascript,我的函数从存储中删除数据,但同时我希望保存删除时间,因此我尝试使用return两次,这与我在函数中编写的一样正确,还是会导致以后出现问题?谢谢你的帮助 function deleteStudent( $indexedDB, student, $scope, studentId, userId) { return $indexedDB.openStore('student', function (store) { student["delete_time"] = new D
function deleteStudent( $indexedDB, student, $scope, studentId, userId) {
return $indexedDB.openStore('student', function (store) {
student["delete_time"] = new Date().toISOString();
return saveItemInStore(store, student, userId);
return store.delete(studentId);
});
}
这将导致的唯一问题是第二个return语句永远不会执行 可能您可以像这样重新编写return语句
return (saveItemInStore(store, student, userId) && store.delete(studentId));
如果两条语句都成功,则返回“true”。此外,如果“saveItemInStore”失败,则不会执行“store.delete”。您需要确定这是否适合您的情况。对象是定制的,允许您从函数返回多条信息。只需在单个对象上创建所需数量的属性并返回该对象。当然,调用函数的代码需要知道返回的是什么,并相应地使用它
var desiredInfo=myFunc();
写“我学会了“+desiredInfo.first+”和“+desiredInfo.second+””;
函数myFunc(){
var objToReturn={};
var someAdvice=“低价买入”;
objToReturn.first=someAdvice;
var moreAdvice=“高价卖出”;
objToReturn.second=更多建议;
返回objToReturn;
}
也许类似的东西符合你的要求
function mytestfunc(){
alert("I will be called first")
return (function(){
alert("I will be called second");
//saveItemInStore placeholder
return (function(){
alert("I will be called third")
//store.delete placeholder
})();
})();
}
mytestfunc();
此外,为了便于参考,请检查此stackoverflow以了解更多关于自动执行函数的信息。您听说过
yield
吗?return
语句立即退出函数,因此不会运行后续的return
语句。不,我没有,我不熟悉java脚本。您的代码不仅仅是多个return
语句,还有很多问题。您不能从indexDB
回调返回任何内容;这是一个异步操作。我想你应该看看我的和你的这两种情况下的存储都没有执行,也许aboth表达式是相同的,第一个返回只执行saveItemInStore函数实际返回什么?如果在我建议的代码中没有执行store.delete,则表示saveItemInStore的返回值被解释为false。两个表达式不相同。在您的语句中,第二个语句永远无法执行。在我的例子中,如果第一个返回一个“truthy”值,它就会执行