Skip to content
PhoenixAndMachine edited this page Mar 28, 2013 · 8 revisions

Javascript uses callback function to implement Asynchronous Programming which is a built-in feature.

Let's read a file called bigfile.txt, however it is a very small file. We implement this functionality in Python (Synchronous Programming) and Javascript(Asynchronous Programming), from which we can tell how Asyn works in JS.

f = open('./bigfile.txt', 'r')
for l in f:
    print l

print "----------------It is Synchronous Programm, I WAIT----------------"

In python program above, the program executes by printing file content first, then the hint sentence. We can tell from the result.

Im Gegensatz zu anderen Open-Source-Hostern wie SourceForge ist auf GitHub nicht das Projekt als Sammlung

von Quellcode zentral, sondern der Nutzer mit seinen Repositories (Verzeichnissen, die von Git

kontrolliert werden). Gleichzeitig wird das Erstellen und Wiedervereinigen von Abspaltungen (Forks

besonders propagiert. Forks dienen weiterhin dazu, einfach bei anderen Projekten mitentwickeln zu können.

Um einem Repository/Projekt einen Beitrag beizusteuern, wird das Repository zunächst aufgespalten, dann

werden die zu übernehmenden Änderungen hinzugefügt und dem Besitzer des Ur-Repositorys ein Pull-Request

gestellt (alles über die Weboberfläche). Damit soll den Besonderheiten verteilter Versionskontrollsysteme

besonders Rechnung getragen und zugleich ein Soziales Netzwerk geschaffen werden, was sich auch in dem

Slogan des Unternehmens und den aus „echten“ sozialen Netzwerken bekannten Funktionen „Beobachten“ oder

 „Folgen“ niederschlägt.

Während Open-Source-Projekte GitHub kostenfrei nutzen können, gibt es auch kostenpflichtige Angebote für

proprietäre Software, die zum Beispiel erlauben, sogenannte Private Repositorys zu erstellen, die nicht

öffentlich einsehbar sind. Kostenfreie Accounts dürfen nur öffentliche Repositorys erstellen.

Außerdem bietet GitHub Inc. größeren Unternehmen GitHub Enterprise an, eine eigene, abgetrennte Github

Installation zu liefern, um die Vorteile des sozialen Programmierens auch bei der unternehmensinternen

Softwareentwicklung zu nutzen.[3]

----------------It is Synchronous Programm, I WAIT----------------

Here, the functionality of reading a file is written in Javascript. When fs.readFile is executed, it will NOT block the execution of the program after it. JS continues the other parts of program till fs.readFile is finished. Then the callback function of fs.readFile called function(read_err, read_data) will be executed.

fs = require('fs');

fs.readFile('./bigfile.txt', 'utf8', function(read_err, read_data) {
    if(read_err) return read_err;
    console.log(read_data);
});

console.log("---------------It is Asynchonous Programming, I DON'T WAIT---------------");

We can tell the execution sequence by the result.

---------------It is Asynchonous Programming, I DON'T WAIT---------------
Im Gegensatz zu anderen Open-Source-Hostern wie SourceForge ist auf GitHub nicht das Projekt als Sammlung
von Quellcode zentral, sondern der Nutzer mit seinen Repositories (Verzeichnissen, die von Git
kontrolliert werden). Gleichzeitig wird das Erstellen und Wiedervereinigen von Abspaltungen (Forks
besonders propagiert. Forks dienen weiterhin dazu, einfach bei anderen Projekten mitentwickeln zu können.
Um einem Repository/Projekt einen Beitrag beizusteuern, wird das Repository zunächst aufgespalten, dann
werden die zu übernehmenden Änderungen hinzugefügt und dem Besitzer des Ur-Repositorys ein Pull-Request
gestellt (alles über die Weboberfläche). Damit soll den Besonderheiten verteilter Versionskontrollsysteme
besonders Rechnung getragen und zugleich ein Soziales Netzwerk geschaffen werden, was sich auch in dem
Slogan des Unternehmens und den aus „echten“ sozialen Netzwerken bekannten Funktionen „Beobachten“ oder
 „Folgen“ niederschlägt.
Während Open-Source-Projekte GitHub kostenfrei nutzen können, gibt es auch kostenpflichtige Angebote für
proprietäre Software, die zum Beispiel erlauben, sogenannte Private Repositorys zu erstellen, die nicht
öffentlich einsehbar sind. Kostenfreie Accounts dürfen nur öffentliche Repositorys erstellen.
Außerdem bietet GitHub Inc. größeren Unternehmen GitHub Enterprise an, eine eigene, abgetrennte Github
Installation zu liefern, um die Vorteile des sozialen Programmierens auch bei der unternehmensinternen
Softwareentwicklung zu nutzen.[3]

Clone this wiki locally