Javascript 异步回调不适用于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

我使用的是npm模块ajax请求,存储数据时遇到问题。我有一种感觉,我只是没有正确地把握回调,但已经遵循了示例,但仍然没有任何效果。任何帮助都将不胜感激

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是的,这正是问题所在,您将异步视为同步。您可以将需要接触该数据的所有代码移到回调中(或移到回调中调用并将数据作为参数传递的函数中),也可以使用承诺。