Я хотел бы избежать необходимости объявлять (r) e 100 методов асинхронными только для двух, которые действительно нуждаются в этом.
Функция не должна бытьasync
(т.е. вернуть обещание) будет await
ред. Также можно ожидать синхронную функцию. Это означает, что если обещание не возвращается draw()
(т. Е. Ваш метод draw () является синхронным), то await
преобразует возвращенное значение draw()
в разрешенное обещание, которое затем ожидает и получаетего ценность.
Итак, возможно что-то вроде следующего:
function foo() { // returns a string
return "foo";
}
async function bar() { // implicitly returns a promise
return "bar";
}
(async function() {
const fooStr = await foo(); // foo() is synchronous, but can be `await`ed still
const barStr = await bar(); // bar() is asynchronous, and can be `await`ed
console.log(fooStr, barStr);
})();
Имея это в виду, вам не нужно знать, является ли draw()
синхронным или нет, вместо этого вы всегда можете await
метод draw()
,независимо от типа возвращаемого значения.