170 похожих чатов

Try в async не ловит promise rejection'ы? Как их тогда

обрабатывать?

13 ответов

10 просмотров

.catch

Nick-Loginov Автор вопроса

В асинхронной функции, если часть ошибок ловится через try.

Ну никто не запрещает через кетч другую часть ошибок передалать, но вобще лучше конечно переделать фунцию что бы ее авейтить

Nick-Loginov Автор вопроса

В моем случае надо делать действия в контексте функции.

Добавить await

Nick-Loginov Автор вопроса

Куда?

try { await new Promise() catch (e) { }

Nick-Loginov Автор вопроса

Нет, так именно это и не работает, с await'ом.

Покажи твой пример кода, который точно у тебя не работает

Работает, https://jsfiddle.net/vazsu6mr/

Nick-Loginov Автор вопроса

function timeout(ms, promise) { return new Promise(function(resolve, reject) { setTimeout(function() { reject(new Error("timeout")); }, ms) promise.then(resolve, reject) }) } try { await timeout(1000, new Promise((res, rej) => { setTimeout(res, 2000); })); } catch(e){ console.log(e); }

Так ты передаешь res, а не rej

Nick-Loginov Автор вопроса

Это не важно, в данном случае пример успешного запроса, который выполнится, но не пройдет таймаут.

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

Обсуждают сегодня

И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
здравствуйте. пытаюсь проверить, содержится ли в десятичном представлении инта некоторая цифра. совершаю: strstr(x, "5") != NULL) получаю ошибку с фото (заведомо неработающий ...
Катя Шевчук🪇
17
Что там вообще с кроссплатформенностью?
🄼🄰🄺🅉🄰🄸
23
{ char buff = *start; *start = *end; *end = buff; } Из-за этой строчки? Что каждый символ через перем бафф? Как вариант использовать другие со...
Wenks
12
#include <stdio.h> #include <string.h> int main() { char *str = "Hello World"; char *ptr; int i = 0; for(char *end = str + strlen(str) - 1; end = str; ptr++, ...
Wenks
9
а я правильно понимаю что в винде сетевые диски выполнены на уровне юзерспейс драйвера? ну я про те которые webDAV, SMB и прочие высокоуровневые
Mixail Frolov
9
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Карта сайта