Javascript 即使存在捕获处理程序,未处理的承诺拒绝
我有一个像这样的ajax调用Javascript 即使存在捕获处理程序,未处理的承诺拒绝,javascript,jquery,promise,es6-promise,Javascript,Jquery,Promise,Es6 Promise,我有一个像这样的ajax调用 const saveView = (name) => { let myWorkbook = tableauViz.getWorkbook() return myWorkbook.rememberCustomViewAsync(name) }; const createDashboardShare = (dashboard_id) => { return new Promise((resolve, reject) =
const saveView = (name) => {
let myWorkbook = tableauViz.getWorkbook()
return myWorkbook.rememberCustomViewAsync(name)
};
const createDashboardShare = (dashboard_id) => {
return new Promise((resolve, reject) => {
jQuery.ajax({
url: `/dashboards/${dashboard_id}/dashboard_shares`,
dataType: 'json',
method: 'POST',
beforeSend: function(xhr) {
},
data: {
},
success: function(data) {
resolve();
},
error: function(err) {
reject(err);
}
});
});
};
我在下面的承诺链调用(相关代码)中使用它
如果在createDashboardShare
中被拒绝,这将生成未处理的承诺异常
,即使我定义了捕获
任何关于这为什么不能按预期工作的帮助都会很好。您发布的代码片段中的catch子句具体在哪里?@GeorgiB.Nikolov-
。然后(null,function(err){…})
相当于catch可能是jQuery.ajax
返回被拒绝的承诺,即使您传递了成功和错误处理程序?尝试返回jQuery.ajax
,而不是将其包装在承诺中。还有,这是什么版本的jQuery?谢谢@Adam的回复,我会试试这个。Jquery版本是1.12.4
@Adam如果我不把它包装在承诺中,我如何将数据转发到链中的下一个
const process = () => {
saveView(name)
.then((view) => createDashboardShare(dashboardId, view.getUrl(), viewName))
.then(null, function(err) {
});
};