Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使ajax调用异步?_Ajax_Dynamics Crm 2011_Dynamics Crm_Dynamics Crm Online - Fatal编程技术网

如何使ajax调用异步?

如何使ajax调用异步?,ajax,dynamics-crm-2011,dynamics-crm,dynamics-crm-online,Ajax,Dynamics Crm 2011,Dynamics Crm,Dynamics Crm Online,我试图使用Ajax调用检索CRM记录 function RetrieveCrmRecords(entName, fields, filter, callback, orderby, errcallback) { ///<summary> /// function to Retrieve Multiple CRM records. ///</summary> //debugger; var async = !!callback;

我试图使用Ajax调用检索CRM记录

function RetrieveCrmRecords(entName, fields, filter, callback, orderby, errcallback) {
    ///<summary>
    /// function to Retrieve Multiple CRM records.
    ///</summary>
    //debugger;
    var async = !!callback;

    var setEntityName = entName + 'Set';
    var _callback = callback;

    filter = (filter) ? "&$filter=" + filter : '';

    var query1 = CrmServerUrl + ODATA + "/";
    var query2 = setEntityName + "()" + "?";
    var queryUrl = query1 + query2;

    if (fields != null) queryUrl += "$select=" + fields.join(',');
    if (orderby != null) {
        if (fields != null) {
            queryUrl += '&';
        }
        queryUrl += "$orderby=" + orderby;
    }
    queryUrl += filter;

    var performRequest = function (queryUrl, fnCallback) {
        var async = !!fnCallback;
        var opts = { url: queryUrl }

        return _makeRequest(opts, async, function (data) {
            var nextData = data.__next || null;
            var resultsData = data.results || data;
            var responseData = { 'results': resultsData, 'next': nextData }

            if (nextData) {
                responseData.LoadNext = function (callback) {
                    return performRequest(nextData, callback);
                };
            }

            if (async) {
                fnCallback(responseData);
            }
            else {
                return responseData;
            }
        }, errcallback);
    };

    return performRequest(queryUrl, callback);
}
因为我对ajax调用没有太多的了解,所以很难让这个函数对我来说是异步的

专家们请帮助我理解这个函数是同步的,因为var async=!!回调;这个

如果我写var async=true来代替这一行;它能使这个函数异步吗


提前谢谢。

我想我完全满足了你的要求

请不要从复制和粘贴此函数的位置查看此文件。 如果你是新来的,这会让你感到困惑

只需像这样从.js文件中调用函数

function RetrieveCrmRecords(entName, fields, filter, calledForAsync, orderby, errcallback) {
//Your Code
}

function calledForAsync()
{
//Your Code
}
当RetrieveCrmRecords中的操作完成时,rest代码将精细地执行,然后它将进入调用的ForAsync

这称为异步调用。 我希望你是自找的

谢谢

安妮什