Javascript 如何正确处理多个异步请求?
是否有人知道一些好的参考资料/书籍,我可以从中了解如何处理多个异步请求Javascript 如何正确处理多个异步请求?,javascript,ajax,Javascript,Ajax,是否有人知道一些好的参考资料/书籍,我可以从中了解如何处理多个异步请求 让我们考虑下面的代码: Payment.createToken = function(data) { var data = data; apiCall("POST", "api/createToken", data, function(success, response) { if (success) { data.token = response.id;
让我们考虑下面的代码:
Payment.createToken = function(data) {
var data = data;
apiCall("POST", "api/createToken", data, function(success, response) {
if (success) {
data.token = response.id;
// If there's coupon code passed in data object, check it's validity, else send payment request
if (data.coupon) {
// Check if coupon is valid
Payment.verifyCoupon(data);
} else {
// Send payment request
Payment.chargePlan(data);
}
} else {
// Handle error
}
});
};
Payment.verifyCoupon = function(data) {
var data = data;
apiCall("POST", "/api/checkCoupon", data, function(success, response) {
if (success) {
Payment.chargePlan(data);
} else {
// Handle error
}
});
};
Payment.chargePlan = function(data) {
apiCall("POST", "/api/chargePlan", data, function(success, response) {
if (success) {
Payment.changeUserType(data);
} else {
// Handle error
}
});
};
Payment.changeUserType = function(data, response) {
apiCall("PUT", "api/users/", data, function(success, response) {
if (success) {
// User type changed successfully
} else {
// Handle error
}
});
};
正如你所见,它很长,有4个步骤。我应该如何正确处理错误等。?让我们考虑一下,这些调用应该尽可能地可重用。我已经成功地使用了这些调用。它有助于减少混乱,并让您可以选择按顺序运行各种进程,或者同时跟踪实际完成的时间
如果您需要知道是否出了问题,它会引用可选的错误处理回调
我知道这不是你想要的确切答案,但它可能会有所帮助 在这种情况下,我通常创建一个异步操作队列来执行并串联运行它们,只有在上一个成功时才调用下一个,如果没有成功,则直接调用最后一个回调,并将错误作为第一个参数。使用