Runtime Error
Cannot access 'Promise' prototype's method 'then' on 'undefined' because it is a non-function property access
What This Error Means
This error occurs when trying to call a method on a non-function value, in this case, a Promise that is pending or rejected
Why It Happens
This error typically happens when you're trying to access the 'then' or 'catch' methods of a Promise that hasn't been resolved or rejected yet. This can be due to a variety of reasons such as a network request taking too long, a database query failing, or a function not returning a Promise.
How to Fix It
- 1To fix this error, you should ensure that the Promise is properly resolved or rejected before trying to call methods on it. You can do this by using 'async/await' or by checking the status of the Promise before calling methods on it. For example:
- 2// Before (broken code)
- 3const promise = new Promise((resolve, reject) => {
- 4 // Code that takes too long to resolve
- 5});
- 6const result = promise.then(data => data);
- 7// After (fixed code)
- 8async function fetchData() {
- 9 const promise = new Promise((resolve, reject) => {
- 10 // Code that takes too long to resolve
- 11 });
- 12 const result = await promise;
- 13 return result;
- 14}
Example Code Solution
❌ Before (problematic code)
JavaScript
const promise = new Promise((resolve, reject) => {
// Code that takes too long to resolve
});
const result = promise.then(data => data);✅ After (fixed code)
JavaScript
async function fetchData() {
const promise = new Promise((resolve, reject) => {
// Code that takes too long to resolve
});
const result = await promise;
return result;
}Fix for Cannot access 'Promise' prototype's method 'then' on 'undefined' because it is a non-function property access
Browse Related Clusters
Related JAVASCRIPT Errors
Related JAVASCRIPT Blog Articles
Have a different error? Get an instant explanation.
Explain Another Error