意外的令牌'>'关于ajax承诺

时间:2016-09-13 08:00:22

标签: javascript jquery ajax

我的代码在ajax函数上进行ajax调用并管理promise:

element.on("keypress", ".keyEvents", function(event) {
            if (event.which == 13) {
                // form the url and the json object                
                var putUrl = url.replace(idInUrl, originElement.attr(idAttr)); //replace idInUrl in url by id                
                var putObj = {};
                putObj[jsonAttr] = $(this).val();

                // AJAX query as a promise
                console.log(putUrl);
                return putAjax(putUrl, putObj).then(data => {
                    // DOM operation on success
                }, error => {
                    // DOM operation on error
                });

            } else if (event.which == 27) {
                // if Esc is pressed

                // replace whith origin element
                $(this).replaceWith(originElement);

            };
        });

ajax函数在模块中定义:

function putAjax(putUrl, putObj) {
        return $.ajax({
            method: "PUT",
            url: putUrl,
            data: JSON.stringify(putObj),
            contentType: "application/json; charset=utf-8",
        });
    };

但我有一个例外:Unexpected token '>'return putAjax(...).then调用的行。{/ p>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您在评论中提到您正在使用Safari 9.1.3。

这是does not support arrow functions,因此浏览器会看到=,并期望右侧有一个表达式。 >不是表达式,因此它会抛出错误。

您可以使用ES6转录程序(例如Babel)或使用旧的函数样式来修复错误:

// ES6 style
(x) => x * 2;

// equivalent old style
function(x) { return x * 2; }

在您的代码中:

element.on("keypress", ".keyEvents", function(event) {
    if (event.which == 13) {
        // form the url and the json object                
        var putUrl = url.replace(idInUrl, originElement.attr(idAttr)); //replace idInUrl in url by id                
        var putObj = {};
        putObj[jsonAttr] = $(this).val();

         // AJAX query as a promise
        console.log(putUrl);
        return putAjax(putUrl, putObj).then(function(data) {
            // DOM operation on success
        },
        function (error) {
            // DOM operation on error
        });

    } else if (event.which == 27) {
        // if Esc is pressed

        // replace whith origin element
        $(this).replaceWith(originElement);

    };
});