前言:我正在使用 typescript 和 node-pg (Postgres for node) 来填充一个 promise 数组,然后使用Promise.all()
.
迭代数字数组并将查询推送到数组时,如果使用以下代码循环数字数组,则会出现错误:
const gameIds = [1,2,3,4,5];
let queryArray = [];
const sql = 'select bettor, fader from wagers where game_id=$1';
gameIds.forEach((gameId: number)=> {
// populate the query array
queryArray.push(DatabaseOperations.dbConnection.query(sql, [gameId]));
});
let allWagersForGames = await Promise.all(queryArray);
将 promise 数组的结果分配给allWagersForGames
. 错误状态:Variable 'queryArray' implicitly has an 'any[]' type.ts(7005)
。
但是,当我按以下方式迭代数字数组时,没有出现错误,我不知道为什么。我不明白为什么迭代样式的更改会影响之前的错误是否出现:
const gameIds = [1,2,3,4,5];
const sql = 'select bettor, fader from wagers where game_id=$1';
for (const gameId of gameIds) {
// populate the query array
queryArray.push(DatabaseOperations.dbConnection.query(sql, [gameId]));
}
// now retrieve all of the data
let allWagersForGames = (await Promise.all(queryArray));