我正在尝试使用jQuery的GET方法获取JSON数据。我试图将一个函数作为参数传递给GET方法并在之后执行它。由于GET方法可以将函数作为参数,我尝试调用函数,但是收到错误。我想我明白概念错了吗?
HTML :
<button class="euro">Euro</button>
JavaScript (使用jQuery库):
<script>
$(function() {
$('button.euro').click(function() {
$.get('http://api.fixer.io/latest', myfun(data));
function myfun(data) {
$('#output').text(data.rates.INR);
}
});
});
</script>
答案 0 :(得分:0)
您是否有任何特殊原因需要传递名称功能而不是匿名? 以下构造将在调用完成后执行函数。
camera.position.z = FRUSTUM_SIDE/2;
您也可以使用.done(function(){})来链接函数。
答案 1 :(得分:0)
您要做的是要执行回调功能
在异步过程完成后调用回调函数(例如从服务器获取数据)
您可以使用匿名函数让生活更轻松:
$(function() {
$('button.euro').click(function() {
$.get('http://api.fixer.io/latest', function(data){
$('#output').text(data.rates.INR);
});
});
});
或者如果你坚持按照自己的方式去做,可以在回调中调用你的函数
你可以这样做:
$(function() {
$('button.euro').click(function() {
$.get('https://api.fixer.io/latest', function(data) {
myfun(data)
});
});
});
function myfun(data) {
alert(data.rates.INR);
}
答案 2 :(得分:0)
概念是:JavaScript是一种异步语言。这意味着第二个功能不会等待任何其他功能(或过程)完成。事件发射器并行发出进程并侦听已完成的进程以运行....
使用回调函数(不可读代码)并不是现在存在的好方法。 Yo可以使用Promises或Generators编写这部分代码。这取决于你的口味。 (http://blog.mgechev.com/2014/12/21/handling-asynchronous-calls-with-es6-javascript-generators/)