Heim > Artikel > Web-Frontend > So empfangen Sie asynchrone Vorgänge mit Promise in Vue.js
Vorwort
Bei der Entwicklung mit Vue.js müssen wir häufig asynchrone Vorgänge abwickeln, z. B. das Abrufen von Daten vom Server, das Senden von Anforderungen usw. Die Ausführung dieser Vorgänge kann einige Zeit in Anspruch nehmen, und Vue.js unterstützt die Verwendung von Promise zur Abwicklung asynchroner Vorgänge. Daher wird in diesem Artikel untersucht, wie man Promise verwendet, um asynchrone Vorgänge in Vue.js zu empfangen.
Was ist Versprechen?
Promise ist ein Objekt zur Verarbeitung asynchroner Vorgänge, mit dem Sie Code in asynchronen Vorgängen besser organisieren und verwalten können. Wenn Sie einen asynchronen Vorgang ausführen müssen, gibt Promise ein Objekt zurück. Dieses Objekt hat drei Zustände: ausstehend, erfüllt und abgelehnt. Ein Promise-Objekt kann sich nur in einem der Zustände befinden und nicht von einem Zustand in einen anderen übergehen.
Promise hat zwei Kernmethoden: then() und Catch(). Die then()-Methode wird ausgeführt, wenn sich das Promise-Objekt im abgeschlossenen Zustand befindet, und die Catch()-Methode wird ausgeführt, wenn sich das Objekt im abgelehnten Zustand befindet.
Wie verwende ich Promise in Vue.js?
Vue.js-Komponenten müssen normalerweise Daten vom Server abrufen oder andere asynchrone Vorgänge ausführen. Wenn wir Promise verwenden, müssen wir eine Funktion definieren und ein Promise-Objekt zurückgeben.
Angenommen, wir müssen eine Anfrage an den Server stellen, wir können die Axios-Bibliothek verwenden. Das Grundgerüst der Funktion ist wie folgt:
function getData() { return new Promise(function(resolve, reject) { // 异步操作 axios.get('/api/data') .then(function(response) { resolve(response.data); }) .catch(function(error) { reject(error); }); }); }
Im obigen Code definieren wir zunächst eine Funktion namens getData(). Diese Funktion gibt ein Promise-Objekt zurück und empfängt asynchrone Vorgänge. Asynchrone Vorgänge verwenden die Funktion axios.get(), um eine HTTP-GET-Anfrage auszuführen.
Wenn die Funktion „axios.get()“ eine Antwort erhält, ruft sie die Methode „.then()“ auf und übergibt die Antwortdaten als Parameter an die Funktion „resolve()“. Dadurch wird der Status des Promise-Objekts als abgeschlossen markiert.
Wenn die Funktion axios.get() auf einen Fehler stößt, ruft sie die Methode .catch() auf und übergibt den Fehler als Parameter an die Funktion „reject()“. Dadurch wird der Status des Promise-Objekts als abgelehnt markiert.
Dies ist das Grundgerüst eines Promise-Objekts. Mit diesem Framework können wir viele nützliche Funktionen implementieren.
Wie verwenden Vue.js-Komponenten Promise?
Für Vue.js-Komponenten können wir Promise verwenden, um asynchrone Vorgänge zu verwalten und abzuwickeln. Wir können innerhalb der Komponente eine Lebenszyklusfunktion namens mount() definieren und darin die Promise-Funktion verwenden. Das Codebeispiel lautet wie folgt:
export default { name: 'MyComponent', data () { return { data: [] }; }, mounted () { const self = this; getData().then(function(data) { self.data = data; }).catch(function(error) { console.error(error); }); } };
Im obigen Codebeispiel definieren wir zunächst eine Eigenschaft namens data in der Komponentendefinition. Dann rufen wir in der Lebenszyklusfunktion mount() die Funktion getData() auf und verwenden die Methoden .then() und .catch(), um asynchrone Vorgänge abzuwickeln.
Wir stellen sicher, dass die Komponenteninstanz innerhalb der Methoden .then() und .catch() zugänglich ist, indem wir const self = this verwenden. In der Methode .then() weisen wir die Daten der Dateneigenschaft der Komponente zu.
Dies ist das Grundgerüst des Vue.js-Komponentencodes mit Promise.
Fazit
In diesem Artikel haben wir besprochen, wie Promise in Vue.js verwendet wird. Promise ist ein sehr nützliches Tool, mit dem wir Code für asynchrone Vorgänge besser organisieren und verwalten können.
Wenn Sie mehr über Promise erfahren möchten, können Sie sich die offizielle Dokumentation von Promise ansehen. Ich hoffe, dieser Artikel kann Ihnen etwas weiterhelfen.
Das obige ist der detaillierte Inhalt vonSo empfangen Sie asynchrone Vorgänge mit Promise in Vue.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!