Как повторить после исключения?

Существует observe, который постоянно уведомляет каждый раз, когда происходит обновление в базе данных. И есть observeSingleEvent, который будет предоставлять вам данные только по запросу.

https://firebase.google.com/docs/database/ios/read-and-write

А также, ваша ссылка на Geofire будет уведомлять вас о каждом обновлении, если вы не хотите, чтобы это делалось, удалите его следующим образом:

«Если вы не заинтересованы в получении обновлений для новых / перемещающихся пользователей после первоначального запроса, это также отличный момент для удаления ваш наблюдатель, позвонив по removeObserverWithFirebaseHandle или removeAllObservers. "

в вашем случае это сообщения, и это было упомянуто здесь: https://stackoverflow.com/a/50722984/8869493

217
задан smci 16 July 2018 в 15:19
поделиться

4 ответа

Сделайте , в то время как True Внутри вашего для цикла, поставьте свой , попробуйте код внутри, и разбить из этого , а цикла только когда ваш код добивается успеха.

for i in range(0,100):
    while True:
        try:
            # do stuff
        except SomeSpecificException:
            continue
        break
334
ответ дан 23 November 2019 в 04:13
поделиться

я недавно работал со своим Python на решении этой проблемы, и я рад совместно использовать его с stackoverflow посетителями, дайте обратную связь, если это необходимо.

print("\nmonthly salary per day and year converter".title())
print('==' * 25)


def income_counter(day, salary, month):
    global result2, result, is_ready, result3
    result = salary / month
    result2 = result * day
    result3 = salary * 12
    is_ready = True
    return result, result2, result3, is_ready


i = 0
for i in range(5):
    try:
        month = int(input("\ntotal days of the current month: "))
        salary = int(input("total salary per month: "))
        day = int(input("Total Days to calculate> "))
        income_counter(day=day, salary=salary, month=month)
        if is_ready:
            print(f'Your Salary per one day is: {round(result)}')
            print(f'your income in {day} days will be: {round(result2)}')
            print(f'your total income in one year will be: {round(result3)}')
            break
        else:
            continue
    except ZeroDivisionError:
        is_ready = False
        i += 1
        print("a month does'nt have 0 days, please try again")
        print(f'total chances left: {5 - i}')
    except ValueError:
        is_ready = False
        i += 1
        print("Invalid value, please type a number")
        print(f'total chances left: {5 - i}')
-2
ответ дан 23 November 2019 в 04:13
поделиться

Самый прочищий способ будет явно установлен I . Например:

i = 0
while i < 100:
    i += 1
    try:
        # do stuff

    except MyException:
        continue
9
ответ дан 23 November 2019 в 04:13
поделиться

Увеличивайте вашу величину петли только тогда, когда пункт TRURE удается

-9
ответ дан 23 November 2019 в 04:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: