আমার কাঠামোর মতো একটি অ্যারে রয়েছে যা অ্যাসিঙ্ক পদ্ধতিগুলি প্রকাশ করে। অ্যাসিঙ্ক পদ্ধতিটি রিটার্ন অ্যারে স্ট্রাকচারগুলিকে কল করে যা ফলস্বরূপ আরও অ্যাসিঙ্ক পদ্ধতি প্রকাশ করে। আমি এই কাঠামো থেকে প্রাপ্ত মানগুলি সংরক্ষণ করার জন্য আরেকটি জেএসএন অবজেক্ট তৈরি করছি এবং তাই কলব্যাকগুলিতে রেফারেন্সগুলি ট্র্যাক করার বিষয়ে আমার সতর্ক হওয়া দরকার।
আমি একটি নিষ্ঠুর বলের সমাধান কোড করে রেখেছি, তবে আমি আরও একটি বুদ্ধিমান বা পরিষ্কার সমাধান শিখতে চাই।
- নেস্টিংয়ের n স্তরের জন্য প্যাটার্নটি পুনরাবৃত্তিযোগ্য হওয়া উচিত।
- বদ্ধ রুটিন কখন সমাধান করবেন তা নির্ধারণ করার জন্য আমার প্রতিশ্রুতিবদ্ধ all সমস্ত বা একই জাতীয় কৌশল ব্যবহার করা উচিত।
- প্রতিটি উপাদান অ্যাসিঙ্ক কল করার জন্য অগত্যা জড়িত না। সুতরাং কোনও নেস্টেড প্রতিশ্রুতিতে all সমস্তই আমি সূচকের উপর ভিত্তি করে আমার জেএসওন অ্যারে উপাদানগুলিকে কেবল অ্যাসাইনমেন্ট দিতে পারি না। তবুও, প্রতিশ্রুতির মতো কিছু ব্যবহার করা দরকার। সমস্ত নেস্টেড ন্যাশনাল সমাধানের আগে সমস্ত সম্পত্তি বরাদ্দ করা হয়েছে তা নিশ্চিত করার জন্য প্রত্যেকটি নেস্টেড ফরেক্সে।
- আমি ব্লুবার্ড প্রতিশ্রুতি ব্যবহার করছি কিন্তু এটি কোনও প্রয়োজন নয়
এখানে কিছু আংশিক কোড দেওয়া হয়েছে -
var jsonItems = [];
items.forEach(function(item){
var jsonItem = {};
jsonItem.name = item.name;
item.getThings().then(function(things){
// or Promise.all(allItemGetThingCalls, function(things){
things.forEach(function(thing, index){
jsonItems[index].thingName = thing.name;
if(thing.type === 'file'){
thing.getFile().then(function(file){ //or promise.all?
jsonItems[index].filesize = file.getSize();
Promise.map
Promise.each
Promise.defer