Promise 不是函数?
Promise is not a function?
我遇到了一个非常标准的错误,我 应该 能够弄清楚,但我像 chuck ATM 一样卡住了:
first_query(): TypeError: ind_promise 不是函数
我已将代码简化为最基本的核心组件,我无法摆脱这个错误。
router.get('/:cusId/email/start', auth.check, async (req, res) => {
try {
let cus_id = req.params.cusId;
const pool = await poolPromise;
let query;
let request;
query = ("SELECT (CUS_FIRST_NAME + ' ' + CUS_LAST_NAME) AS CUS_NAME, CUS_IND_ID FROM CUS WHERE CUS_STATUS = 'A' AND CUS_ID = @CUS_ID");
request = pool.request()
.input('CUS_ID', sql.Int, cus_id);
std.first_query(request, query)
.then(async function(cus_rec) {
let ind_promise = new Promise ((resolve, reject) => {
resolve (1);
});
ind_promise()
.then((ind_id) => {
console.log(ind_id);
})
.catch((err) => {
console.log('ind_promise(): ' + err.message);
res.status(500);
res.send(err.message)
});
})
.catch (function(err) {
console.log('first_query(): ' + err);
res.status(500);
res.send(err.message)
});
} catch {
console.log(err.message);
res.status(500);
res.send(err.message)
}
});
这有点让人恼火,因为我对 promise 并不陌生。我知道我在做一些非常愚蠢的事情,但这并不明显。求高手帮忙
您立即调用了您的承诺,然后您尝试像调用它的函数一样调用它
let ind_promise = new Promise ((resolve, reject) => {resolve (1);});
ind_promise()
要么将 ind_promise
更改为一个函数,要么直接调用它而不调用它 ind_promise.then
我遇到了一个非常标准的错误,我 应该 能够弄清楚,但我像 chuck ATM 一样卡住了:
first_query(): TypeError: ind_promise 不是函数
我已将代码简化为最基本的核心组件,我无法摆脱这个错误。
router.get('/:cusId/email/start', auth.check, async (req, res) => {
try {
let cus_id = req.params.cusId;
const pool = await poolPromise;
let query;
let request;
query = ("SELECT (CUS_FIRST_NAME + ' ' + CUS_LAST_NAME) AS CUS_NAME, CUS_IND_ID FROM CUS WHERE CUS_STATUS = 'A' AND CUS_ID = @CUS_ID");
request = pool.request()
.input('CUS_ID', sql.Int, cus_id);
std.first_query(request, query)
.then(async function(cus_rec) {
let ind_promise = new Promise ((resolve, reject) => {
resolve (1);
});
ind_promise()
.then((ind_id) => {
console.log(ind_id);
})
.catch((err) => {
console.log('ind_promise(): ' + err.message);
res.status(500);
res.send(err.message)
});
})
.catch (function(err) {
console.log('first_query(): ' + err);
res.status(500);
res.send(err.message)
});
} catch {
console.log(err.message);
res.status(500);
res.send(err.message)
}
});
这有点让人恼火,因为我对 promise 并不陌生。我知道我在做一些非常愚蠢的事情,但这并不明显。求高手帮忙
您立即调用了您的承诺,然后您尝试像调用它的函数一样调用它
let ind_promise = new Promise ((resolve, reject) => {resolve (1);});
ind_promise()
要么将 ind_promise
更改为一个函数,要么直接调用它而不调用它 ind_promise.then