আমি এখনও প্রতিশ্রুতিগুলিতে মোটামুটি নতুন এবং বর্তমানে আমি ব্লুবার্ড ব্যবহার করছি, তবে আমার এমন একটি পরিস্থিতি রয়েছে যেখানে আমি কীভাবে এটির সাথে সর্বোত্তমভাবে মোকাবিলা করব তা সম্পর্কে আমি নিশ্চিত নই।
সুতরাং উদাহরণস্বরূপ আমার মত একটি এক্সপ্রেস অ্যাপ্লিকেশন মধ্যে একটি প্রতিশ্রুতি শৃঙ্খল আছে:
repository.Query(getAccountByIdQuery)
.catch(function(error){
res.status(404).send({ error: "No account found with this Id" });
})
.then(convertDocumentToModel)
.then(verifyOldPassword)
.catch(function(error) {
res.status(406).send({ OldPassword: error });
})
.then(changePassword)
.then(function(){
res.status(200).send();
})
.catch(function(error){
console.log(error);
res.status(500).send({ error: "Unable to change password" });
});
সুতরাং আমি যে আচরণটি করছি তা হ'ল:
- আইডির মাধ্যমে অ্যাকাউন্ট পেতে যায়
- যদি এই সময়ে কোনও প্রত্যাখ্যান হয় তবে বোমা ফাটিয়ে একটি ত্রুটি ফিরিয়ে দিন
- যদি কোনও ত্রুটি না থাকে তবে দস্তাবেজটিকে কোনও মডেলে ফিরিয়ে আনুন
- ডাটাবেস নথির সাহায্যে পাসওয়ার্ড যাচাই করুন
- যদি পাসওয়ার্ডগুলি মেলে না তবে বোমা ফাটিয়ে একটি ভিন্ন ত্রুটি ফিরে আসবে
- কোনও ত্রুটি না থাকলে পাসওয়ার্ডগুলি পরিবর্তন করুন
- তারপরে সাফল্য ফিরিয়ে দিন
- অন্য কিছু যদি ভুল হয়ে থাকে তবে একটি 500 ফিরিয়ে দিন
সুতরাং বর্তমানে ক্যাচগুলি শৃঙ্খলা বন্ধ করে দেবে বলে মনে হয় না, এবং এটি উপলব্ধি করে তোলে, তাই আমি ভাবছি যে আমার জন্য যদি কোনও উপায় ত্রুটির উপর ভিত্তি করে কোনও নির্দিষ্ট বিন্দুতে শৃঙ্খলা বন্ধ করতে বাধ্য করা হয়, বা আরও ভাল উপায় আছে কিনা? এর কাঠামোগত শাখা আচরণের কিছু ফর্ম পেতে, যেমন আছে তেমন একটি ঘটনা if X do Y else Z
।
যেকোনো সাহায্যই অসাধারণ.