https://github.com/danwrong/restler http://nodejs.org/javascript restler jak zablokować/czekać na wniosek
w celu pobrania pliku, używam restler z nodejs w skrypcie po stronie serwera (nie z poziomu przeglądarki internetowej, klienta).
mogę używać sposób asynchronicznej ognia zdarzenie po zakończeniu pobierania, jak następuje:
rest = require('./restler');
rest.get('http://google.com').on('complete', function(result) {
if (result instanceof Error) {
sys.puts('Error: ' + result.message);
this.retry(5000); // try again after 5 sec
} else {
sys.puts(result);
}
});
ale wolę używać synchronizacji drogę tym razem.
jak mogę to sprawdzić i zablokować/zaczekać, aż otrzymam odpowiedź?
i jak uzyskać dane lub błąd potem
var req = rest.get('http://twaud.io/api/v1/users/danwrong.json');
// how to block/wait here until file is downloaded
if (req.response instanceof Error) { // this does not worn neither
...
} else {
...
}
Istnieje duży powód posiadania asynchronicznych metod, a także zablokujesz cały proces, który będzie wymagał odciążenia innych żądań/odpowiedzi. Zawsze istnieje sposób obejścia tego i korzystania z rzeczywistych metod asynchronicznych. Czy mógłbyś opisać powód, dla którego chcesz zablokować sytuację, i może być dobrym rozwiązaniem, abyś mógł pozostać asynchronicznym z logicznymi potrzebami swoich wyzwań. – moka
to nie jest skrypt w przeglądarce klienta. jest to prosty skrypt na serwerze, który działa i kończy się, gdy pobieranie jest gotowe. nie potrzebuję tutaj asynchronicznego ustawienia. –
Będzie pobierać i uruchamiać "zakończone" zsynchronizowane lub asynchroniczne, to nie ma znaczenia. Więc pytanie "dlaczego chcesz zrobić synchronizację", czy asynchroniczny jest taki sam wynik? W każdym razie. 'restler' nie ma metod' 'sync' ani opcji dla metod. Możesz to zaimplementować samodzielnie. – moka