Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
Javascript 当代码位于不同的文件中时,获取简单的工作承诺的问题_Javascript_Jquery - Fatal编程技术网

Javascript 当代码位于不同的文件中时,获取简单的工作承诺的问题

Javascript 当代码位于不同的文件中时,获取简单的工作承诺的问题,javascript,jquery,Javascript,Jquery,这就是我想做的: 从文件a调用文件B中的函数,并将结果作为承诺返回到文件a中 这是我的代码: index.html <script> $("#link").click(function() { firstFunction(); }); post.done(function(r) { console.log(r); }); </script> <button id="link">Hello</button> 我得到了这个错误,只有当

这就是我想做的:

  • 从文件a调用文件B中的函数,并将结果作为承诺返回到文件a中
  • 这是我的代码:

    index.html

    <script>
    $("#link").click(function() {
        firstFunction();
    });
    
    
    post.done(function(r) {
      console.log(r);
    });
    </script>
    <button id="link">Hello</button>
    
    我得到了这个错误,只有当我把主函数放在不同的文件中时,我才会看到这个错误:

    indexboll.html:23 Uncaught ReferenceError: post is not defined
        at indexboll.html:23
    

    您的问题是变量post不再在范围内。阅读更多信息。执行
    firstFunction
    后,内部局部变量的引用就消失了。通过将
    return post
    添加到
    firstFunction
    的主体中,然后将单击处理程序更改为如下所示,可以从函数中返回post的值:

    $("#link").click(function() {
       var post = firstFunction();
    
       post.done(function(r) {
          console.log(r);
       });
    });
    

    因为post的作用域是函数的块作用域…@epascarello我真的不确定这意味着什么-你是说它们必须在同一个文件中吗?你在该函数中声明了
    post
    ,使用
    var
    ;这与它是否在同一个文件中无关。
    $("#link").click(function() {
       var post = firstFunction();
    
       post.done(function(r) {
          console.log(r);
       });
    });