Why is this an issue?
Promises are objects that represent the eventual completion or failure of an asynchronous operation. They provide a way to handle asynchronous
operations in a more organized and manageable manner. To use
await, you need to ensure that you are calling a function or an expression
that returns a promise.
await should only be used on a promise is that it expects the operand to be a promise object. When you use
await, it waits for the promise to be resolved or rejected and then returns the resolved value or throws the rejection reason,
respectively. If the operand of
await is not a promise, awaiting it is redundant and might not have been the developer’s intent.
If you try to use
await on a non-promise value, such as a regular object or a primitive type, it will not pause the execution of the
function because there is no asynchronous behavior involved. Instead,
await will convert the value to a resolved promise, and waits for
const x = 42;
await x; // Noncompliant: x is a number, not a promise
You should only use
await on promises because it is designed to handle asynchronous operations and works in conjunction with the
const x = Promise.resolve(42);