我的代码在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>
有什么想法吗?
答案 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);
};
});