Да, вы можете это сделать, и он будет запускать две асинхронные функции параллельно. Вы только что создали обещание и выбросили его.
Однако это означает, что когда обещание отклоняется, вы не заметите. Вы просто получите unhandledRejection
в конечном итоге, что приведет к сбою вашего процесса, если его не обработать.
Это нормально? Как я могу запустить то, что мне все равно?
Наверное, это не нормально. Если вам действительно все равно, вы не запускали его с самого начала. Таким образом, вы должны четко и ясно указать, что вас волнует (а что нет):
- ты хочешь подождать? (для побочных эффектов)
- тебе нужен результат?
- вы хотите ловить исключения?
Если вы хотите только подождать и не заботитесь о значении результата, вы можете легко выбросить результат:
void (await someAsyncFunction()); // or omit the void keyword,
// doesn't make a difference in an expression statement
Если вас не интересуют исключения, вы можете игнорировать их, используя
… someAsyncFunction().catch(function ignore() {}) …
Вы можете выбросить это, подождать, что угодно с этим делать.
Если хочешь результата, надо его дождаться. Если вас волнуют исключения, но вы не хотите ждать, вы можете выполнить их параллельно со следующими функциями:
var [_, res] = await Promise.all([
someAsyncFunction(), // result is ignored, exceptions aren't
someOtherAsyncFunction()
]);
return res;
person
Bergi
schedule
03.09.2015