使用ajax成功函数调用另一个函数是使用返回数据的唯一方法吗?

时间:2018-08-30 20:26:27

标签: javascript ajax asynchronous

这里是主动学习者。我想通过ajax调用检索数据,然后在另一个函数中使用返回的数据。我了解到,ajax调用是异步的,因此尝试使用回调无济于事。 It looks like在我的Ajax调用中调用我的主要功能是唯一的方法吗?这是正确的说法吗? This post使我相信,只需将函数定义为变量,然后就可以将变量用作返回的数据。这就是我在下面的代码段中尝试过的方法。我的getChoiceControl函数中的控制台日志正在运行,但是设置为该函数的变量的控制台日志出现“未定义”。假设此问题与异步行为有关,我实际上是在尝试理解异步调用以及如何使用数据。我已经阅读了很多有关in的文章,但是由于事实上当我尝试进行回调时,回调也失败了,我想知道我所掌握的知识中是否仅仅存在其他差距。预先感谢!

function createHTML(data){
var tester = getChoiceControls();
console.log(tester);
var arr = data.d.results;
var container = $('.container');
var categoryLinksContainer = $('<div class="wrapTest" />');
    for(var i in arr){
        var item = arr[i];
        var title = item.Title;     
        categoryLinksContainer.append(
            '<div class="test">'+title+'</div>'     
        );
    }               
    categoryLinksContainer.appendTo(container);         

}

function getChoiceControls(){
    $.ajax({
        url: _spPageContextInfo.siteServerRelativeUrl+"/_api/web/lists/GetByTitle('TestList')/fields?$filter=(Title eq 'TestColumn')",
        type: "GET",
        headers: {
        "accept": "application/json;odata=verbose",
        },
        success: function (data) {
        console.log(data);
        return data;
        },
        error: function (error) {
        console.log(JSON.stringify(error));
        }
    });
}

0 个答案:

没有答案