Szukaj…


Moduł asynchroniczny


Źródło jest dostępne do pobrania z GitHub. Alternatywnie możesz zainstalować za pomocą npm:

Instalacja npm $ --save async

Oprócz korzystania z Bower:

$ bower zainstaluj asynchronicznie

Przykład:

var async = require("async");
async.parallel([
    function(callback) { ... },
    function(callback) { ... }
], function(err, results) {
    // optional callback
});

Moduł asynchroniczny

Na szczęście biblioteki takie jak Async.js istnieją, aby spróbować rozwiązać problem. Async dodaje cienką warstwę funkcji na wierzch kodu, ale może znacznie zmniejszyć złożoność, unikając zagnieżdżania wywołań zwrotnych.

W Async istnieje wiele metod pomocniczych, których można używać w różnych sytuacjach, takich jak szereg, równoległość, wodospad itp. Każda funkcja ma konkretny przypadek użycia, więc poświęć trochę czasu, aby dowiedzieć się, która pomoże w jakich sytuacjach.

Async jest tak dobry, jak wszystko inne, ale nie jest idealny. Bardzo łatwo jest dać się ponieść emocjom, łącząc serie, równoległe, wieczne itp., W tym momencie wracasz do miejsca, w którym zacząłeś od niechlujnego kodu. Uważaj, aby nie przedwcześnie zoptymalizować. To, że kilka zadań asynchronicznych można uruchamiać równolegle, nie zawsze oznacza, że powinny. W rzeczywistości, ponieważ Węzeł jest tylko jednowątkowy, równoległe uruchamianie zadań przy użyciu Async ma niewielki lub żaden wzrost wydajności.

Źródło jest dostępne do pobrania ze strony https://github.com/caolan/async . Alternatywnie możesz zainstalować za pomocą npm:

Instalacja npm $ --save async

Oprócz korzystania z Bower:

$ bower zainstaluj asynchronicznie

Przykładowy wodospad Asynca:

var fs = require('fs');  
var async = require('async');

var myFile = '/tmp/test';

async.waterfall([  
    function(callback) {
        fs.readFile(myFile, 'utf8', callback);
    },
    function(txt, callback) {
        txt = txt + '\nAppended something!';
        fs.writeFile(myFile, txt, callback);
    }
], function (err, result) {
    if(err) return console.log(err);
    console.log('Appended text!');
});


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow