মন্তব্যে উভয় উত্তরের বিপরীতে - একটি পার্থক্য রয়েছে।
যখন
Promise.resolve(x);
মূলত একই
new Promise(function(r){ r(x); });
একটি সূক্ষ্মতা আছে।
প্রতিশ্রুতি ফিরিয়ে দেওয়ার ক্রিয়াকলাপগুলির সাধারণত গ্যারান্টি থাকতে হবে যে তারা সিঙ্ক্রোনালি নিক্ষেপ করবে না কারণ তারা অ্যাসিঙ্ক্রোনাসলি ফেলে দিতে পারে। অপ্রত্যাশিত ফলাফল এবং প্রতিযোগিতার পরিস্থিতি রোধ করার জন্য - নিক্ষেপগুলি সাধারণত প্রত্যাবর্তন প্রত্যাখাতে রূপান্তরিত হয়।
এটি মাথায় রেখে - যখন চশমাটি তৈরি করা হয়েছিল প্রতিশ্রুতিবদ্ধ কনস্ট্রাক্টর নিরাপদ নিক্ষেপ করা হবে।
যদি someObjectহয় undefined?
- ওয়ে এ প্রত্যাখ্যাত প্রতিশ্রুতি ফিরিয়ে দেয়।
- ওয়ে বি সিঙ্ক্রোনাসলি ছুড়ে ফেলে।
ব্লুবার্ড এটি দেখেছিল এবং পেটকা Promise.methodএই সমস্যাটির সমাধান করতে যুক্ত করেছে যাতে আপনি ফেরতের মানগুলি ব্যবহার করতে পারেন। সুতরাং ব্লুবার্ডে এটি লেখার সঠিক এবং সহজ উপায়টি আসলে কোনওটিই নয় - এটি হ'ল:
var someFunction = Promise.method(function someFunction(someObject){
someObject.resolved = true;
return someObject;
});
প্রতিশ্রুতি.মথদ্ধ আপনার জন্য সমাধানগুলিতে নিক্ষেপ করে এবং প্রত্যাবর্তনগুলিতে ফিরবে। এটি করা সবচেয়ে নিরাপদ উপায় এবং এটি thenরিটার্ন ভ্যালুগুলির মাধ্যমে সক্ষমগুলিকে অন্তর্ভুক্ত করে তাই এটি যদি someObjectবাস্তবে নিজেই প্রতিশ্রুতি দেয় তবে এটি কাজ করবে।
সাধারণভাবে, Promise.resolveপ্রতিশ্রুতিগুলিতে কাস্টিং অবজেক্ট এবং বিদেশী প্রতিশ্রুতি (তারপরেযোগ্য) ব্যবহার করা হয়। এটি এর ব্যবহারের ক্ষেত্রে।
Promise.resolveশুধু চিনি।