Chrome 为什么刷新页面时控制台记录两个不同的元素输出?

cwdobuhd  于 2023-04-27  发布在  Go
关注(0)|答案(1)|浏览(107)

当我刷新页面时,Chrome DevTools中的控制台随机给我2个不同的console.log输出。
验证码:

function createItem(name, parent, liClasses, btnClasses, iClasses) {
    const div = document.getElementById(parent);
    const li = createLi(name, liClasses);
    const btn = createButton(btnClasses);
    const i = createIcon(iClasses);

    btn.appendChild(i);
    li.appendChild(btn);
    div.appendChild(li);

    return div;
}

console.log(
    createItem('Coffee', 'main', 'li classes', 'btn classes', 'i classes')
);

Chrome DevTools输出1:

输出2:

知道为什么会这样吗

7eumitmz

7eumitmz1#

console可能会在createItem()执行的不同阶段记录createItem()函数的输出***,这是由于函数***中某些操作的异步性质。
为了确保一致的日志输出,您可以将函数调用 Package 在setTimeout()函数中,延迟为0 milliseconds

setTimeout(() => {
    console.log(createItem('Coffee', 'main', 'li classes', 'btn classes', 'i classes'));
}, 0);

这将确保console.log()语句在函数完成执行且所有异步操作完成后执行。

相关问题