Ich versuche, etwas über Versprechungen zu lernen, und ich frage mich, ob ich eine asynchrone Funktion wie meine Beispielshow starten und stoppen soll. Es fängt am Anfang an und hört auf, wenn Sie auf den Knopf klicken, aber es scheint, kann nicht fortfahren.Ist es möglich, eine gestoppte Async-Funktion fortzusetzen?
var stop = 0;
var elParrafo = document.getElementById('miParrafo');
function sendStop() {
stop = 1;
}
function sendStart() {
stop = 0;
}
function esperar(ms) {
return new Promise(function(resolve, reject) {
setTimeout(resolve, ms)
});
}
async function trabajar() {
while (stop === 0) {
elParrafo.innerHTML += " > ";
await esperar(50);
}
}
trabajar();
<form class="" action="index.html" method="post">
<input type="button" value="Stop" onclick="sendStop()">
<input type="button" value="Start" onclick="sendStart()">
</form>
<p id="miParrafo"></p>
Der Code ist noch kein Versprechen. Es hört einfach auf, neue zu feuern. Sie können Ihre Schleife stoppen/starten, indem Sie erneut das 'trabajar' aufrufen, aber eine Zusage kann nicht abgebrochen werden. –