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> 我得到了这个错误,只有当
<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);
});
});