【发布时间】:2018-06-19 03:55:52
【问题描述】:
我正在尝试使用 jQuery(当前版本 3.2.1)学习 Promise。
我只想在发布请求成功后才运行获取请求,但我当前的代码不起作用。提交数据工作正常,但获取请求不运行。 我不确定如何链接这两个操作?
$('#newPoiForm').submit(function (e) { // handle the submit event
e.preventDefault();
let formData = $(this).serialize();
console.log(formData);
$.post({
type: 'POST',
url: '/api/pois/',
data: formData
}).done(function(){
console.log('new asset submitted')
return $.get({url: '/api/pois/last'})
}).then(function (data) {
// do stuff
})
【问题讨论】:
-
有多种承诺类型。
success(),error(),then(),done(),这取决于你需要什么。 Id 查找 api 以了解您要完成的任务。 -
done->then。done只是一个成功回调,另一方面,.then将管道返回值并继续链。 -
使用 then 似乎效果更好。即使第一个失败,第二个 promise 还会运行吗?
-
不,因为 .then 的第一个回调只有在成功时才会被调用。
标签: javascript jquery promise