«promise» etiketlenmiş sorular

Vaatler, çeşitli eşzamanlılık stilleri için uygun olan ertelenmiş bilgi işlem için bir taktiktir: yerel hesaplama için iş parçacığı ve olay döngüsü eşzamanlılığı ve hem eşzamanlı hem de eşzamansız uzaktan mesajlaşma. Bir söz, eşzamansız bir işlemin nihai sonucunu temsil eder. Vaatlerle çalışmanın birincil yolu, vaadin nihai değerinden veya başarısızlık nedeninden yeni bir vaadine dönüşümleri kaydeden bir yöntemdir.

2
ÖN ve SONRA yakanın yerleştirilmesi
.catchİç içe bir sözde ÖNCE ve SONRA koymak arasındaki farkı anlamakta güçlük çekiyorum . Alternatif 1: test1Async(10).then((res) => { return test2Async(22) .then((res) => { return test3Async(100); }).catch((err) => { throw "ERROR AFTER THEN"; }); }).then((res) => { console.log(res); }).catch((err) => { console.log(err); }); Alternatif 2: test1Async(10).then((res) => { return test2Async(22) …

2
JavaScript ES6 Promises bir çözümün ardından neden yürütülmeye devam ediyor?
Anladığım kadarıyla bir söz, çözebilen () veya reddedebilen () bir şeydir, ancak sözdeki kodun bir çözüm veya reddetme çağrıldıktan sonra çalışmaya devam ettiğini öğrenmek beni şaşırttı. Çözme veya reddetmeyi, tüm anında işlev yürütmeyi durduracak, çıkış veya dönüşün eşzamansız bir sürümü olduğunu düşündüm. Birisi, aşağıdaki örneğin bir çözümleme çağrısından sonra bazen …

5
Sözler, daha sonra zincire ek parametreler aktar
Bir söz, örneğin: var P = new Promise(function (resolve, reject) { var a = 5; if (a) { setTimeout(function(){ resolve(a); }, 3000); } else { reject(a); } }); Biz aradıktan sonra, sözdeki yöntem: P.then(doWork('text')); doWork işlevi şuna benzer: function doWork(data) { return function(text) { // sample function to console log …

2
TypeError: Tanımsız 'sonra' özelliği okunamıyor
loginService.islogged() Yukarıdaki işlev, "başarısız" gibi bir dizge döndürür. Ancak, çalıştırmayı denediğimde işlevini yerine getirdiğimde, TypeError: Cannot read property 'then' of undefined ve imleç hemen sonra connectedve öncesinde gösterilir .then. Tam işlev aşağıdadır: var connected=loginService.islogged(); alert(connected); connected.then(function(msg){ alert("connected value is "+connected); alert("msg.data value is "+msg.data); if(!msg.data.account_session || loginService.islogged()=="failed") $location.path('/login'); }); GÜNCELLEME …

2
Promise.resolve - yeni Promise (çözümleme)
Bluebird kullanıyorum ve eşzamanlı işlevleri bir Söze dönüştürmenin iki yolunu görüyorum, ancak her iki yol arasındaki farkları anlamıyorum. Stacktrace biraz farklı gibi görünüyor, bu yüzden sadece bir değil alias, değil mi? Peki tercih edilen yol nedir? Yol A function someFunction(someObject) { return new Promise(function(resolve) { someObject.resolved = true; resolve(someObject); }); …

3
Promise.all (). Sonra () çözülsün mü?
Düğüm 4.x'i kullanma. Elinizde bir Promise.all(promises).then()veriyi çözmenin ve bir sonrakine aktarmanın doğru yolu .then()nedir? Bunun gibi bir şey yapmak istiyorum: Promise.all(promises).then(function(data){ // Do something with the data here }).then(function(data){ // Do more stuff here }); Ancak verileri 2. kata nasıl alacağımdan emin değilim .then(). Ben kullanamaz resolve(...)ilk .then(). Bunu yapabileceğimi …

3
SetTimeout'tan nasıl söz verilir
Bu gerçek bir dünya sorunu değil, sadece vaatlerin nasıl yaratıldığını anlamaya çalışıyorum. SetTimeout gibi hiçbir şey döndürmeyen bir işlev için nasıl söz verileceğini anlamam gerekiyor. Varsayalım ki: function async(callback){ setTimeout(function(){ callback(); }, 5000); } async(function(){ console.log('async called back'); }); Hazır asyncolduktan sonra geri dönebilecek bir sözü nasıl oluşturabilirim ?setTimeoutcallback() Sarmanın …

8
Geri aramaları Node.js'deki vaatlerle değiştirme
Bir veritabanına bağlanan ve veri almak için birkaç işlevi olan basit bir düğüm modülüm var, örneğin bu işlev: dbConnection.js: import mysql from 'mysql'; const connection = mysql.createConnection({ host: 'localhost', user: 'user', password: 'password', database: 'db' }); export default { getUsers(callback) { connection.connect(() => { connection.query('SELECT * FROM Users', (err, result) …

6
Promise catch'te yeniden atma hatası
Bir öğreticide aşağıdaki kodu buldum: promise.then(function(result){ //some code }).catch(function(error) { throw(error); }); Biraz kafam karıştı: yakalama çağrısı bir şey başarır mı? Bana öyle geliyor ki, yakalanan aynı hatayı attığı için herhangi bir etkisi yok. Bunu, normal bir deneme / yakalama işleminin nasıl çalıştığına dayandırıyorum.

1
Asla çözülmemiş sözler bellek sızıntısına neden olmaz mı?
Bir Promise. Gerekirse bir AJAX isteğini iptal etmek için oluşturdum. Ancak bu AJAX'ı iptal etmem gerekmediğinden, bunu hiçbir zaman çözmedim ve AJAX başarıyla tamamlandı. Basitleştirilmiş bir snippet: var defer = $q.defer(); $http({url: 'example.com/some/api', timeout: defer.promise}).success(function(data) { // do something }); // Never defer.resolve() because I don't need to cancel that …

9
Söz - bir sözü iptal etmeye zorlamak mümkün mü
Tüm ağ verisi alımımı yönetmek için ES6 Promises kullanıyorum ve bunları iptal etmeye zorlamam gereken bazı durumlar var. Temel olarak senaryo, isteğin arka uca delege edildiği kullanıcı arayüzünde önden yazma aramamın kısmi girdiye dayalı olarak aramayı yürütmesi gerektiği şekildedir. Bu ağ isteği (# 1) biraz zaman alabilse de, kullanıcı yazmaya …


9
Bir sözden birden fazla değeri nasıl doğru bir şekilde döndürürsünüz?
Son zamanlarda birkaç kez, nasıl çözeceğimi bilmediğim belirli bir durumla karşılaştım. Aşağıdaki kodu varsayalım: somethingAsync() .then( afterSomething ) .then( afterSomethingElse ) function afterSomething( amazingData ) { return processAsync( amazingData ); } function afterSomethingElse( processedData ) { } Ben erişmesini istediğiniz nerede Şimdi bir durum ortaya çıkabilecek amazingDataiçinde afterSomethingElse. Açık bir …
87 javascript  promise  q 

3
Öyleyse eğer başka bir sözle nasıl başa çıkılır?
Bazı durumlarda, bir vaat nesnesinden bir dönüş değeri aldığımda then(), değerin durumuna bağlı olarak iki farklı öncelik başlatmam gerekir , örneğin: promise().then(function(value){ if(//true) { // do something } else { // do something } }) Düşünüyorum da belki şöyle yazabilirim: promise().then(function(value){ if(//true) { // call a new function which will …

1
Bir söz içeriden nasıl reddedilir ve sonra işlev görür
Bu muhtemelen aptalca bir sorudur, ancak söz zincirinin ortasında, o zamanki işlevlerden birinin içinden bir sözü nasıl reddedersiniz? Örneğin: someActionThatReturnsAPromise() .then(function(resource) { return modifyResource(resource) }) .then(function(modifiedResource) { if (!isValid(modifiedResource)) { var validationError = getValidationError(modifiedResource); // fail promise with validationError } }) .catch(function() { // oh noes }); Artık orijinal çözümleme …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.