Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在javascript函数中多次返回_Javascript - Fatal编程技术网

是否可以在javascript函数中多次返回

是否可以在javascript函数中多次返回,javascript,Javascript,我的函数从存储中删除数据,但同时我希望保存删除时间,因此我尝试使用return两次,这与我在函数中编写的一样正确,还是会导致以后出现问题?谢谢你的帮助 function deleteStudent( $indexedDB, student, $scope, studentId, userId) { return $indexedDB.openStore('student', function (store) { student["delete_time"] = new D

我的函数从存储中删除数据,但同时我希望保存删除时间,因此我尝试使用return两次,这与我在函数中编写的一样正确,还是会导致以后出现问题?谢谢你的帮助

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”值,它就会执行