作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
{ setTi-6ren">
我的修改都在这个函数中:
fetchRows(sqlQuery) {
let aPromise = new Promise((resolve, reject) => {
setTimeout(function () {
if (sqlQuery) {
resolve(I.getResults(sqlQuery));
}
reject("Not a valid query");
}, 38);
});
return aPromise.then((sqlQuery) => {
console.log('Success:', sqlQuery);
}).catch((errorMessage) => {
console.log(errorMessage);
});
},
什么属性是未定义的? promise 结构中是否缺少某些内容? (我是一个 js Promise 菜鸟)如果我删除所有内容并只包装“I.getResults(sqlQuery)”,它运行得很好,我认为有关 Promise 的某些东西正在抛弃它。
这是 getResults 函数
/**
* Get query resultset
* @param {*} sqlQuery
*/
getResults(sqlQuery) {
return connection.then(client => {
return client.query({
rowMode: 'array',
text: sqlQuery,
}).then(res => {
return res.rows;
}).catch(e => {
client.release();
pool.end();
console.error('query error', e.message, e.stack);
});
});
}
最佳答案
您的问题是 resolve ()
不会中断流程,因此您还调用 reject
。
要解决此问题,请使用returnresolve(...)
,这样您就可以跳出函数作用域并且不会触发拒绝,从而导致您返回未定义。
关于javascript - JS Promise 包装函数返回 "Cannot read property ' 0' of undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52957595/
我是一名优秀的程序员,十分优秀!