Ich würde gerne wissen, ob es eine Möglichkeit gibt zu überprüfen, ob eine URL synchron existiert. Tatsächlich lade ich Dateien herunter, also muss ich sicherstellen, dass diese URLs existieren, bevor ich versuche, sie herunterzuladen. Hier ist das Paket, das ich verwende, um zu überprüfen, ob diese URLs gültig sind https://github.com/boblauer/url-existsWie überprüfe ich, ob die URL synchron in NodeJs existiert?
Antwort
Kurz gesagt, können Sie nicht.
Sie können nicht erzwingen, dass eine asynchrone Anforderung synchron ist.
Sie haben ein paar verschiedene syntaktische Ansätze (Promises
, async/await
, Veranstaltungen über Node.js http
, Rückrufe, etc.), aber es ist alles unten in irgendeiner Art und Weise zu sein async kochen geht.
Die async/await
Muster wird aussehen am synchronsten, aber es wird immer noch async.
Das von Ihnen verwendete Paket verwendet das Callback-Muster, daher müssen Sie Ihren anderen Code so anpassen, dass er asynchron ist. Sie können diese Ansätze kombinieren und anpassen.
Meine persönliche Präferenz besteht darin, nicht-Promise-Muster in ein Promise-Muster zu verpacken und dann die ganze Syntax async/await
zu verwenden. Auch dies sieht synchron aus, aber bedenke es nicht und behandle es dementsprechend.
Sie können Callback-Syntax als Versprechen wie diese wickeln:
const urlExistsPromise = url => new Promise((resolve, reject) =>
urlExists(url, (err, exists) => err ? reject(err) : resolve(exists));
Und Sie können es wie folgt verwenden:
urlExistsPromise(url).then(exists => console.log(exists));
oder als await
(innerhalb einer Funktion markiert async
):
const exists = await urlExistsPromise(url);
Tks @ Samanin. Ich werde es versuchen und zu dir zurückkommen. Aber ich denke, deine Antwort sollte den Job machen. –
Hallo. Tks ein lo für das Helfen –
- 1. Wie überprüfe ich, ob eine IsolatedStorageFile existiert?
- 2. Wie überprüfe ich, ob die Spalte in der Tabelle existiert?
- 3. Wie überprüfe ich, ob eine E-Mail-Adresse existiert?
- 4. Wie überprüfe ich, ob in einem CachedRowSet ein Spaltenname existiert?
- 5. Wie überprüfe ich, ob in xforms eine Instanz existiert?
- 6. Wie überprüfe ich, ob eine Datei in einer Fernbedienung existiert?
- 7. Wie überprüfe ich, ob eine Eigenschaft in einem Objekt existiert?
- 8. Wie überprüfe ich, ob eine Variable in eex existiert?
- 9. Wie überprüfe ich, ob ein Schlüssel in einem Datensatz existiert?
- 10. Wie überprüfe ich, ob ein Tag in XSLT existiert?
- 11. Wie überprüfe ich in Python, ob eine Variable existiert?
- 12. Wie überprüfe ich, ob eine Datei existiert, die ihre URL verwendet, ohne sie herunterzuladen?
- 13. Wie überprüfe ich, ob ein Ordner über https existiert
- 14. Wie überprüfe ich, ob ein couchdb Dokument existiert mit Python
- 15. Wie überprüfe ich, ob ein Firebase-Datenbankwert existiert?
- 16. JS Wie überprüfe ich, ob ein Callback existiert?
- 17. Thymeleaf Wie überprüfe ich die aktuelle URL?
- 18. Wie überprüfe ich, ob eine Zeile existiert oder nicht?
- 19. Wie überprüfe ich, ob eine Datei existiert und von heute?
- 20. Wie überprüfe ich, ob Element bei Jasmine existiert?
- 21. Wie überprüfe ich, ob ein Verzeichnis mit SQL Server existiert?
- 22. Wie überprüfe ich, ob meine E-Mail bereits existiert?
- 23. Wie überprüfe ich am besten, ob ein Cookie existiert?
- 24. Wie überprüfe ich, ob die Daten in meinem Kind existieren?
- 25. Wie kann ich überprüfen, ob die Route "URL" existiert?
- 26. Wie überprüfe ich die gültige URL-Adresse?
- 27. Wie überprüfe ich, ob ein Element sichtbar ist und überprüfe, ob die URL eine Zeichenfolge enthält, die JQuery verwendet?
- 28. Wie überprüfe ich, ob die Datei in S3 mit Ionic 3/Angular 5 existiert?
- 29. Nodejs synchron ausführen
- 30. wie man app.use in nodejs synchron macht
Remote-Anforderungen sind normalerweise nicht synchron – charlietfl
Sie können ca mach es nicht asynchron? – epascarello
Rufen Sie einfach die URL und wenn es eine 404 zurückgibt, die URL existiert nicht ... aber es wird immer async sein, da Server-Prozesse beteiligt sind und Sie nicht im Voraus wissen, wie lange das dauern wird. Oder sind die Dateien auf Ihrem eigenen Server? Dann könnten Sie eine Art Index erstellen, der alle verfügbaren Dateien enthält. – Kokodoko