为什么函数在执行完成之前返回?

时间:2015-03-01 16:44:11

标签: javascript callback

我写了以下代码;

var isValid = undefined;

alert(codeEditAddress());

function codeEditAddress() {
      test();
      return waitFor(function() { return isValid != undefined }, function(){return isValid});
}

function test(){
       setTimeout(function(){isValid = true;}, 1000);

}
function waitFor(fnReady, fnCallback) {
            var check = function () {
                if (fnReady()) {
                    fnCallback();
                }
                else {
                    setTimeout(check, 100);  // wait another 100ms, and try again
                }
            };
            check();
}

我在警报中看到“未定义”。

预期结果 - 看到“真实”,延迟1秒

我错了什么?

P.S。 demo

0 个答案:

没有答案