Имейте в виду, что await
делает что-нибудь полезное только в том случае, если вы ожидаете обещание, связанное с вашей фактической асинхронной операцией. «Связано» в этом предложении означает, что обещание разрешается, когда асинхронная операция выполняется или отклоняется, если в ней есть ошибка.
Если функция, которую вы ожидаете, либо ничего не возвращает, либо возвращает просто простое значение, но содержит асинхронные операции, то await
на самом деле await
ничего не делает. Он вызывает функцию, инициирует эти асинхронные операции, функция возвращает значение без обещания или возвращает уже выполненное обещание, await
не имеет ничего ждать и просто продолжает выполнять больше строк кода без ожидаемой паузы для выполнения асинхронных операций.
Итак, в вашем коде единственный способ, которым:
await adb.installApk()
выполняется перед любым из вызовов:
await files.downloadFile(element2)
если files.downloadFile()
на самом деле не возвращает обещание, связанное с асинхронными операциями, которые он содержит, или, возможно, если вы никогда не выполняете files.downloadFile(element2)
из-за условий.
Для получения дополнительной справки c, покажите нам код files.downloadFile()
и подтвердите, что вы выполняете свои условия и выполняете их хотя бы один раз.