複数の非同期リクエストを処理する方法を見つけることができる優れたリソース/本を知っている人はいますか?
以下のコードを考えてみましょう。
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 つのステップが流れます。エラーなどを適切に処理するにはどうすればよいですか? これらの呼び出しは可能な限り再利用できるようにする必要があることを考慮に入れましょう。