Yorumlardaki her iki cevabın aksine - bir fark var.
Süre
Promise.resolve(x);
temelde aynıdır
new Promise(function(r){ r(x); });
bir incelik var.
Promise döndüren işlevler, zaman uyumsuz olarak atabilecekleri için genellikle eşzamanlı olarak atmamaları gerektiğine dair garantiye sahip olmalıdır. Beklenmeyen sonuçları ve yarış koşullarını önlemek için - atışlar genellikle geri dönen retlere dönüştürülür.
Bunu akılda tutarak - şartname oluşturulduğunda, vaat eden kurucu güvende olur.
Ya someObject
olduğunu undefined
?
- A Yolu, reddedilmiş bir söz verir.
- Way B eşzamanlı olarak atar.
Bluebird bunu gördü ve Petka, Promise.method
dönüş değerlerini kullanmaya devam edebilmeniz için bu sorunu çözmek için ekledi . Yani bunu Bluebird'de yazmanın doğru ve en kolay yolu aslında hiçbiri - bu:
var someFunction = Promise.method(function someFunction(someObject){
someObject.resolved = true;
return someObject;
});
Promise.method, atışları reddetmeye dönüştürür ve sizin için çözümlere döner. Bunu yapmanın en güvenli yoludur ve then
geri dönüş değerleri aracılığıyla yetenekleri özümser, böylece someObject
aslında bir söz olsa bile işe yarar .
Genel olarak, Promise.resolve
vaatlere nesneler ve yabancı vaatler (temsili) dökmek için kullanılır. Bu onun kullanım durumu.
Promise.resolve
sadece şekerdir.