Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么javascripts函数没有一个接一个地加载?_Javascript - Fatal编程技术网

为什么javascripts函数没有一个接一个地加载?

为什么javascripts函数没有一个接一个地加载?,javascript,Javascript,在html的开头,iam初始化变量“movieSRC”,如下所示: <script type="text/javascript"> var activeStep = getUrlVars(); var movieSRC; cloud.getStepsForModules(activeStep.module, "UMCK").then(function(steps) { var calculatedStep

在html的开头,iam初始化变量“
movieSRC
”,如下所示:

<script type="text/javascript">

        var activeStep = getUrlVars();
        var movieSRC;

        cloud.getStepsForModules(activeStep.module, "UMCK").then(function(steps) {

            var calculatedStep = activeStep.step - 1;
            movieSRC = steps.steps[calculatedStep].movie;

        });

var activeStep=getUrlVars();
var movieSRC;
getStepsForModules(activeStep.module,“UMCK”)。然后(函数(步骤){
var calculatedStep=activeStep.step-1;
movieSRC=steps.steps[calculatedStep].movie;
});
在我的html末尾我有一些功能


_V_uu(“电影”).ready(函数(){
var myPlayer=this;
myPlayer.src(movieSRC);
我不明白为什么一个html的结尾部分将首先加载,而另一个
的开头部分将作为第二个加载。我需要它的反面!
我需要在页面末尾保留
videojs
脚本,因为视频应该首先加载,然后才加载脚本


结论:
myPlayer中的movieSRC.src(movieSRC)
是空的:(,但为什么?

JavaScript代码会按照它出现的顺序执行。但是,有些函数是异步的,这意味着它们在单独的线程中执行。您的第一个函数可能是异步的吗


如果要确保在异步函数之后执行某些代码,请在异步函数的回调方法中调用该代码。

JavaScript代码确实会按其显示的顺序执行。但是,有些函数是异步的,这意味着它们在单独的线程中执行。您的第一个函数是否可能离子是异步的


如果要确保在异步函数之后执行某些代码,请在异步函数的回调方法中调用该代码。

它是按顺序执行的。首先声明两个变量,然后执行一个函数,然后执行最后的部分。您忽略的是函数ng是异步执行的。无论它运行得有多快,它都不太可能在页面完成加载之前完成

这是异步的:

cloud.getStepsForModules(activeStep.module, "UMCK")
因此,当它执行时,其他所有内容都在加载。在它执行后需要发生的任何事情都需要从其
处理程序调用。然后()
处理程序:

cloud.getStepsForModules(activeStep.module, "UMCK").then(function(steps) {

    var calculatedStep = activeStep.step - 1;
    movieSRC = steps.steps[calculatedStep].movie;

    // I don't know this plugin, but find your "myPlayer" here somehow
    myPlayer.src(movieSRC);

});
或者,这个顺序对插件整体来说更有意义:

_V_("movie").ready(function() {
    var myPlayer = this;

    cloud.getStepsForModules(activeStep.module, "UMCK").then(function(steps) {
        var calculatedStep = activeStep.step - 1;
        movieSRC = steps.steps[calculatedStep].movie;
        myPlayer.src(movieSRC);
    });
});

它是按顺序执行的。首先声明两个变量,然后执行一个函数,然后在最后执行该部分。您忽略的是,正在执行的函数是异步的。而且,无论它运行得有多快,它都不太可能在页面完成加载之前完成

这是异步的:

cloud.getStepsForModules(activeStep.module, "UMCK")
因此,当它执行时,其他所有内容都在加载。在它执行后需要发生的任何事情都需要从其
处理程序调用。然后()
处理程序:

cloud.getStepsForModules(activeStep.module, "UMCK").then(function(steps) {

    var calculatedStep = activeStep.step - 1;
    movieSRC = steps.steps[calculatedStep].movie;

    // I don't know this plugin, but find your "myPlayer" here somehow
    myPlayer.src(movieSRC);

});
或者,这个顺序对插件整体来说更有意义:

_V_("movie").ready(function() {
    var myPlayer = this;

    cloud.getStepsForModules(activeStep.module, "UMCK").then(function(steps) {
        var calculatedStep = activeStep.step - 1;
        movieSRC = steps.steps[calculatedStep].movie;
        myPlayer.src(movieSRC);
    });
});

最有可能的情况是,在响应从上面的cloud.getStepsForModules函数返回之前,对末尾的脚本进行评估

另外,第二个脚本中有一个语法错误-缺少大括号/括号/分号集

尝试将使用结果的函数放入回调中,如

<script type="text/javascript">

    var activeStep = getUrlVars();
    var movieSRC;

    cloud.getStepsForModules(activeStep.module, "UMCK").then(function(steps) {

        var calculatedStep = activeStep.step - 1;
        movieSRC = steps.steps[calculatedStep].movie;
        _V_("movie").ready(function() {
           var myPlayer = this;
            myPlayer.src(movieSRC);
            });

    });

var activeStep=getUrlVars();
var movieSRC;
getStepsForModules(activeStep.module,“UMCK”)。然后(函数(步骤){
var calculatedStep=activeStep.step-1;
movieSRC=steps.steps[calculatedStep].movie;
_V_uu(“电影”).ready(函数(){
var myPlayer=this;
myPlayer.src(movieSRC);
});
});

最有可能的情况是,在响应从上面的cloud.getStepsForModules函数返回之前,正在评估最后的脚本

另外,第二个脚本中有一个语法错误-缺少大括号/括号/分号集

尝试将使用结果的函数放入回调中,如

<script type="text/javascript">

    var activeStep = getUrlVars();
    var movieSRC;

    cloud.getStepsForModules(activeStep.module, "UMCK").then(function(steps) {

        var calculatedStep = activeStep.step - 1;
        movieSRC = steps.steps[calculatedStep].movie;
        _V_("movie").ready(function() {
           var myPlayer = this;
            myPlayer.src(movieSRC);
            });

    });

var activeStep=getUrlVars();
var movieSRC;
getStepsForModules(activeStep.module,“UMCK”)。然后(函数(步骤){
var calculatedStep=activeStep.step-1;
movieSRC=steps.steps[calculatedStep].movie;
_V_uu(“电影”).ready(函数(){
var myPlayer=this;
myPlayer.src(movieSRC);
});
});

也许
getStepsForModules
是一个异步函数?否则为什么需要
。然后()
?我可以用其他方式调用这样的函数吗?不可以,但是您可以在脚本中重新组织事件并正确使用回调。也许
getStepsForModules
是一个异步函数?否则为什么需要
。然后()
?我可以用其他方式调用这样的函数吗?不可以,但您可以在脚本中重新组织事件并正确使用回调。