从ajax回调传递变量以完成全局变量

时间:2019-07-17 14:19:47

标签: javascript jquery ajax callback

所以我目前对此完全感到困惑。我有一些执行ajax调用的javascript,但是我确实需要将数据返回到一些全局变量(供其他函数使用)。

var id;
var title;
var author;
var body;
var date;

function getListDetails() {
	$.ajax({
		type: 'GET',
		dataType: 'json',
		url: 'url_to_api_here',
		success: listCallback,
		complete: test // had tried a complete function, but not quite sure what to put here
	});
};


function listCallback() {
	
	var listId = scriptData.getAttribute('data-id'); //from a script tag currently in html

	var arrayToObject = (array) =>
		array.reduce((obj, item) => {
			obj[item.id] = item
			return obj
		}, {})

	var listObject = arrayToObject(response);
	var properties = listObject[listId];
	
	
	var title = properties.title;
	var author = properties.author;
	var body = properties.body; 
	var date = properties.date;
}

从我的研究中,我了解到ajax本质上是异步的,并且将其设置为同步确实是一种不好的做法。但是,我确实需要返回在回调函数中设置的这些变量,以便可以在成功函数之外使用它们。有没有办法做到这一点?我到处都看了看,但尝试返回的数据似乎没有任何效果。

我确实尝试过Barmar的建议,但是在“ complete”功能之外,变量仍未定义。

0 个答案:

没有答案
相关问题