我正在尝试根据jsonp请求的结果创建一个变量,并稍后在脚本中使用此变量。但是似乎在jsonp请求完成之前触发了使用变量的部分。

  function onSuccess(data) {
    var result = data['result'];
    console.log(result);
}

function onError(data) {
    alert(data);
}

$.ajax({
    url:"http://suneeriksen.unboxer.org/",
    cache: false,
    dataType: 'jsonp',
    jsonp: 'callback',
    timeout: 5000,
    success: onSuccess,
    error: onError
});


var gallery,
    el,
    i,
    page,
    dots = document.querySelectorAll('#nav li'),
    slides = result //this is where I try to fetch the variable

    ];


我试图弄清楚如何做到这一点。我试图将jsonp请求放入一个函数中,并像这样完成:
    var slides = jsonpResult();

任何线索该怎么办?

编辑:
我也有使用gallery变量的函数

gallery.onFlip(function () {
//Doing stuff
}


而且我不能将所有这些都放在onSuccess函数中。

最佳答案

有两种方法:

通过在ajax调用选项中设置async: true来使AJAX调用不是A(同步)(请注意,现在不赞成使用此方法)。

要么:

请从成功回调内部调用使用slides变量的任何代码(如果将来需要,也可以在其中进行赋值)。

关于javascript - 尝试在jsonp请求完成之前读取var,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9437124/

10-11 23:32
查看更多