首页 > 解决方案 > 在ajax成功函数中调用另一个函数是使用返回数据的唯一方法吗?

问题描述

主动学习者在这里。我想通过 ajax 调用检索数据,然后在另一个函数中使用返回的数据。我了解到 ajax 调用是异步的,因此尝试使用回调无济于事。看起来在我的 ajax 调用中调用我的 main 函数是唯一的方法吗?这是一个准确的说法吗?这个帖子让我相信可以简单地将函数定义为一个变量,然后您就可以使用该变量作为返回的数据。这是我在下面的代码片段中尝试的。我的 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));
        }
    });
}

标签: javascriptajaxasynchronous

解决方案


推荐阅读