Yol Node.js birden fazla geri aramaları için beklemek deyimsel
Bazı temp dosyası kullanan bazı işlemler yapmanız gerekiyor sanırım. Beri Düğüm burada bahsediyoruz, bu operasyonları açıkça uyumsuz. Tüm operasyonlar için bitmesini beklemeniz deyimsel yolu nedir temp dosyası silinmiş olabilir acaba?
Burada bazı kod yapmak istediğim şey gösteriyor:
do_something(tmp_file_name, function(err) {});
do_something_other(tmp_file_name, function(err) {});
fs.unlink(tmp_file_name);
Ama ben bu şekilde yazmak, üçüncü çağrı ilk iki önce idam edilebilir dosyayı kullanmak için bir şans. Bir şekilde ilk iki garanti istiyorum aramalar zaten (onların geri çağrılan) iç içe hareket etmeden önce bitmiş aramalar (ve pratikte senkron yapma).
Geri aramaları üzerine olay yayıcılar kullanarak sayaç kayıt düşündüm alıcı olarak. Tezgahın bitmiş olayları ve sayısı kaç alacak operasyonlar hala beklemede. En son bittiğinde, silmek istiyorsunuz dosya. Ama bir yarış durumu ve bu olduğundan emin değilim riski var bu şeyler yapılır genelde.
Nasıl Düğüm insanlar bu tür sorunu çözer mi?
CEVAP
Eğer doğru anladıysam çok iyi async kütüphanede bir baksan iyi olacak sanırım. series bakın özellikle dikkat etmelisiniz. Github sayfasından: parçacıkları sadece bir kopya
async.series([
function(callback){
// do some stuff ...
callback(null, 'one');
},
function(callback){
// do some more stuff ...
callback(null, 'two');
},
],
// optional callback
function(err, results){
// results is now equal to ['one', 'two']
});
// an example using an object instead of an array
async.series({
one: function(callback){
setTimeout(function(){
callback(null, 1);
}, 200);
},
two: function(callback){
setTimeout(function(){
callback(null, 2);
}, 100);
},
},
function(err, results) {
// results is now equals to: {one: 1, two: 2}
});
Bir artı olarak, bu kütüphane de tarayıcıda çalıştırabilirsiniz.
Java nasıl bir yöntem birden fazla nes...
Birden fazla ajax aramalar için Javasc...
Böyle büyük mükafat uyarı: "Birde...
Nasıl birden fazla çalıştırmak için .B...
Nasıl Python ile birden fazla değer ge...