有谁知道一些好的资源/书籍,我可以找到如何处理多个异步请求?
让我们考虑下面的代码:
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个步骤。我该如何妥善处理错误等?让我们考虑一下这些调用应尽可能重用。
答案 0 :(得分:0)
我已经使用this library取得了一些成功。它有助于减少混乱,并为您提供按顺序或同时运行各种流程的选项(跟踪实际完成所有流程的时间)。
如果您需要知道是否出错,它会引用可选的错误处理回调。
我意识到这不是您正在寻找的确切答案,但它可能会有所帮助。
答案 1 :(得分:0)
在这种情况下,我通常会创建一个异步操作队列来进行串行运行,只有先前成功才调用下一个,如果不成功,则直接调用最后一个回调,并将错误作为第一个参数。