js中调用含有return的函数不能停止运行

 比如,需要在某个点击事件中先判断手机是否联网,若断网则弹出提示并停止运行后面的程序。如果将这个功能提取出来再在点击时调用,发现return并没有阻止上层函数的运行。

const checkMobileOnline = () => {
    if (!navigator.onLine) {
        Toast.info('网络不可用', 2);
        return
    }
}

有个可以变通的方法是在需要停止的子程序中抛出异常,即可停止代码运行:

const checkMobileOnline = () => {
    if (!navigator.onLine) {
        Toast.info('网络不可用', 2);
        // throw代替return可以实现阻止外层程序运行
        throw console.info('~~手机没网,停止这个操作');
    }
}

参考网址:https://blog.csdn.net/Leisurelyc/article/details/105772565

你可能感兴趣的:(前端,前端移动开发,js中的return不起作用,return,false,javascript,html)