It is possible to use await on values which are not Promises, but it's useless and misleading. The point of await is to pause execution until the Promise's asynchronous code has run to completion. With anything other than a Promise, there's nothing to wait for.

This rule raises an issue when an awaited value is guaranteed not to be a Promise.

Noncompliant Code Example

let x = 42;
await x; // Noncompliant

Compliant Solution

let x = new Promise(resolve => resolve(42));
await x;

let y = p ? 42 : new Promise(resolve => resolve(42));
await y;