JavaScript:有人能举个例子说明什么时候需要回调(命运金字塔)中的回调吗?

JavaScript:有人能举个例子说明什么时候需要回调(命运金字塔)中的回调吗?,javascript,jquery,callback,dynamic-script-loading,Javascript,Jquery,Callback,Dynamic Script Loading,下面的代码在回调中执行回调。为什么需要这样做?为什么不能是3个单独的电话?注意loadScript将创建一个样式标记并添加动态传递给src属性的脚本 loadScript('/my/script.js', function(script) { loadScript('/my/script2.js', function(script) { loadScript('/my/script3.js', function(script) { // ..

下面的代码在回调中执行回调。为什么需要这样做?为什么不能是3个单独的电话?注意loadScript将创建一个样式标记并添加动态传递给src属性的脚本

loadScript('/my/script.js', function(script) {

    loadScript('/my/script2.js', function(script) {

        loadScript('/my/script3.js', function(script) {

            // ...continue after all scripts are loaded
        });
    })

});

在本例中,您使用回调来确保每个脚本在下一个脚本加载之前完成加载。它们是链接的,因此在继续代码之前必须加载所有三个脚本。这一点很重要的原因是脚本在加载时会阻止其余的渲染/执行。 如果您想解决此问题,还可以使用async/promise语法在每一行中保持加载:

const loader = new Loader({
    src: 'cdn.segment.com/analytics.js',
    global: 'Segment',
})

// scriptToLoad will now be a reference to window.Segment
const scriptToLoad = await loader.load()

// https://timber.io/snippets/asynchronously-load-a-script-in-the-browser-with-javascript/


您可以使用回调,以便在异步进程占用任意数量的处理时间后执行某些代码。例如,您的
loadScript
函数在回调中获取脚本,这意味着它先加载脚本,然后调用回调。如果你将它们分开进行,所有这些都将立即加载,并且你将无法准确地确定这三个任务何时完成。。。。A调用并获取数据,B使用A的数据,C使用B的数据。当你有很多微服务的时候,这很常见。这能回答你的问题吗?谢谢你的帮助。我现在知道了@Mickeelb@epascarello@user1538301.Hopefully它创建了一个脚本标记而不是样式标记…非常感谢。