首页 > 其他 > 详细

2015/01/23 – 不要对异步回调函数进行同步调用

时间:2015-01-23 17:44:34      阅读:269      评论:0      收藏:0      [点我收藏+]
  • 绝对不能对异步回调函数(即使在数据已经就绪)进行同步调用。

  • 如果对异步回调函数进行同步调用的话,处理顺序可能会与预期不符,可能带来意料之外的后果。

  • 对异步回调函数进行同步调用,还可能导致栈溢出或异常处理错乱等问题。

  • 如果想在将来某时刻调用异步回调函数的话,可以使用 setTimeout 等异步API。

 

function onReady(fn) {
    var readyState = document.readyState;
    if (readyState == ‘interactive‘ || readyState === ‘complete‘) {
        setTimeout(fn, 0);
    } else {
        window.addEventListener(‘DOMContentLoaded‘, fn);
    }
}
onReady(function () {
    console.log(‘DOM fully loaded and parsed‘);
});
console.log(‘==Starting==‘);
技术分享
function onReadyPromise() {
    return new Promise(function (resolve, reject) {
        var readyState = document.readyState;
        if (readyState == ‘interactive‘ || readyState === ‘complete‘) {
            resolve();
        } else {
            window.addEventListener(‘DOMContentLoaded‘, resolve);
        }
    });
}
onReadyPromise().then(function () {
    console.log(‘DOM fully loaded and parsed‘);
});
console.log(‘==Starting==‘);
Promise 实现

js Promise 迷你书

2015/01/23 – 不要对异步回调函数进行同步调用

原文:http://www.cnblogs.com/yoyoone23/p/4244461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!