我的Exec方法

function Exec(funcName, arr, byResult) {
    if (byResult) {
        if (typeof funcName == "string") {
            if (window[funcName]) {
                //如果返回false或者没用返回值,则继续执行一次,知道返回true
                if (!window[funcName](arr)) {
                    window.setTimeout(function() { Exec(funcName, arr, true) }, _interval);
                }
            }
            else {
                window.setTimeout(function() { Exec(funcName, arr, true) }, _interval);
            }
        } else {
            if (!funcName(arr)) {
                window.setTimeout(function() { Exec(funcName, arr, true) }, _interval);
            }
        }
    } else {
        if (typeof funcName == "string") {
            //如果此函数已经被加载
            if (window[funcName]) {
                window[funcName](arr);
            } //如果函数没有被加载,则每隔0.1秒检查一次,直到加载完成
            else {
                window.setTimeout(function() { Exec(funcName, arr) }, _interval);
            }
        } else {
            funcName(arr);
        }
    }
}

function Exec2(funcName, arr, byResult) {
    if (typeof funcName == "string") {
        if (window[funcName]) {
            if (byResult) {
                if (!window[funcName](arr)) {
                    window.setTimeout(function() { Exec(funcName, arr, true) }, _interval);
                }
            } else {
                window[funcName](arr);
            }
        }
        else {
            window.setTimeout(function() { Exec(funcName, arr, byResult) }, _interval);
        }
    } else {
        if (byResult) {
            if (!funcName(arr)) {
                window.setTimeout(function() { Exec(funcName, arr, true) }, _interval);
            }
        } else {
            funcName(arr);
        }
    }
}
原文地址:https://www.cnblogs.com/mxw09/p/1893243.html