Действительно надеюсь, что кто-то может указать мне в правильном направлении или сказать мне, что я делаю неправильно.Извините, если мое объяснение не велико, будьте добры!
В настоящее время я работаю над созданием функции, которая выполняет вызов ajax с динамически создаваемым URL.Функция должна находиться в одном месте (например, website.com/global-api.js).В идеале любой из наших разработчиков должен иметь возможность вызывать функцию из своих сайтов (website.com/mysite.html) с набором данных, который они хотят получить в качестве аргумента, и затем изменять его по мере необходимости (яЯ включил неопределенную диаграмму, которая была создана для описания требования - может быть бесполезно).
global-api.js
function globalApi(value){
var setApiProp = {
settings: { name: value },
init: function(){ 'use strict';
s=this.settings;
this.getApiData(s.name);
},
getApiData: function(attr){
path = '/api/'+attr;
console.log('Get from: ' + path)
var jqxhr = $.ajax({
url: path,
method: "GET",
dataType: "json",
async: false
})
.done(function(responseData){
console.log('Response is: ' + responseData)
// Log: Response is: [object Object],[object Object]..
return responseData
})
}
}; //end
setApiProp.init()
}
unitone.js
Внутри события, загруженного содержимым dom:
var retrievedData = globalApi("news/")
console.log('Retrieved is: ' + retrievedData)
developersFunction(retrievedData);
Вызов из unitone.js генерирует правильный путь и получает правильные данные в globalApi.Тем не менее, мой журнал в настоящее время;
Response is: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Retrieved is: undefined
Developer function data is: undefined
Мой вопрос;Есть ли надежный способ заставить developersFunction ждать, пока не будет задан retrievedData, чтобы его можно было использовать в локальных функциях?
Диаграмма требований: файлы модулей для вызова функции из центрального местоположения