Исходя из названия, profilePromise
- это обещание. Обещания не имеют свойства rows
, поэтому profilePromise.rows
равно undefined
, и вы не можете прочитать какие-либо свойства из undefined
.
Вам необходимо потреблять обещание и использовать его значение выполнения, которое, как я предполагаю, имеет свойство length
:
profilePromise
.then(rows => {
if (rows.length) {
resolve(/*...*/);
}
})
.catch(error => {
// ...handle/report the error...
// Probably `reject` here?
});
Подробнее об использовании обещаний здесь .
Примечание: Предполагая, что я прав, что profilePromise
действительно обещание, оно предполагает, что этот код становится жертвой явного создания антипаттерна обещания . Вместо того, чтобы создавать собственное обещание, а затем вызывать resolve
или reject
, добавьте цепочку к существующему обещанию:
return profilePromise
.then(rows => {
if (rows.length) {
return {
success: true,
cardDetails: null,
planId: null
};
}
// Either return something else here, or `throw` if `rows` not having
// a truthy `length` is an error
});