{ setTi-6ren">
gpt4 book ai didi

javascript - JS Promise 包装函数返回 "Cannot read property ' 0' of undefined"

转载 作者:行者123 更新时间:2023-12-01 01:34:25 24 4
gpt4 key购买 nike

我的修改都在这个函数中:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com