Es gibt kein Problem, wenn Sie auf die Schaltfläche „Abbrechen“ klicken, wenn die Positionierung zum ersten Mal erfolgreich ist oder die Positionierung fehlschlägt. Sie können dann den Rückruf erhalten oder die Funktion im Positionierungsfang abbrechen Um getLocation erneut aufzurufen, wird das neue Versprechen erneuert, aber die Auflösung oder Ablehnung ist zu diesem Zeitpunkt nicht erfolgreich und es wird eine Fehlermeldung gemeldet
Bedeutet das, dass es keinen Haken gibt, um den Fehler der ersten Anfrage zu behandeln?
Zu diesem Zeitpunkt habe ich es in
geändert
Lassen Sie ihn zuerst den Fehler behandeln und ihn dann erneut aufrufen. Zu diesem Zeitpunkt wird die Methode im Catch nicht ausgeführt. Bitte sagen Sie mir, wie ich damit umgehen soll. Lassen Sie die zweite Ausführung auflösen oder ablehnen
Obwohl es nicht asynchron ist, scheinen das Implementierungsprinzip und die Eigenschaften gleich zu sein, sodass Sie die zweite Lösung zurückgeben oder ablehnen können
看代码,感觉是因为你的第一个promise没有进行决议,然后通过调用getLocation()又开始启用了另一个promise,所以会报错吧。
我理解的你要实现的就是在promise中要递归的调用自身。你可以搜搜promise递归调用相关问题。