respon
,但是我不能在他的函数之外进行操作。$.ajax(settings).done(function(response) {
respon = [];
respon[0] = response;
respon[1] = respon[0].data.translations[0].translatedText;
});
console.log(respon); // is not defined
response
可用之前需要花费一些时间。以同步的顺序会发生这种情况:$.ajax(settings)
被呼叫console.log(response)
被调用并且尚不可用=>未定义response
完成后可用console.log()
包装在外部作用域函数中并从done()
函数进行调用$.ajax(settings).done(function(response) {
myCallback(response);
});
function myCallback(data){
window.respon = []; // var respon = [];
window.respon[0] = data;
window.respon[1] = data[0].data.translations[0].translatedText;
console.log(window.respon);
}
现在我已经明确指出,respon
是window
对象的一部分,因为您没有声明它。这不是“真正的”必要,而是发生的事情。如果您在其他任何地方都不需要它,则应声明它并将其保留在范围内=>根据您打算使用它的用途,请使用var
,let
或const
。