Javascript 异步回调不适用于Ajax请求
我使用的是npm模块ajax请求,存储数据时遇到问题。我有一种感觉,我只是没有正确地把握回调,但已经遵循了示例,但仍然没有任何效果。任何帮助都将不胜感激Javascript 异步回调不适用于Ajax请求,javascript,ajax,Javascript,Ajax,我使用的是npm模块ajax请求,存储数据时遇到问题。我有一种感觉,我只是没有正确地把握回调,但已经遵循了示例,但仍然没有任何效果。任何帮助都将不胜感激 var productData = 'test'; function sendajax() { ajax({ url: url, method: 'GET', }, (err, res, body) => { // Callback function retu
var productData = 'test';
function sendajax() {
ajax({
url: url,
method: 'GET',
}, (err, res, body) => {
// Callback function
returnData(body);
});
}
function returnData(data) {
// set variable
productData = data;
}
alert(productData);
在分配
productData=data
之后立即在函数中尝试移动alert(productData)
的可能重复简短回答:回调不是这样工作的。如果将警报
移动到回调中,您将看到它确实会对从服务器接收回来的数据发出警报(假设没有错误)。那么我如何返回检索到的数据,以便将其存储在变量中?或者这只是使它同步运行?@DorianHuxley是的,这正是问题所在,您将异步视为同步。您可以将需要接触该数据的所有代码移到回调中(或移到回调中调用并将数据作为参数传递的函数中),也可以使用承诺。