【发布时间】:2018-04-15 17:54:50
【问题描述】:
我总是纠结于异步代码,我不知道我的错误在哪里。
此代码从数据库中读取产品名称并将它们放入untranslated 数组中。之后,遍历数组,翻译每一项,并推入一个新的translated 数组。
SQL 部分工作正常,但不幸的是,translated 数组为空。我正在使用 mssql 和 translate npm 包。
我怎样才能做到这一点?
var untranslated = [];
var translated = [];
var query = `select name from products`
new sql.ConnectionPool(db).connect().then(pool => {
return pool.request().query(query)
}).then(result => {
for (var i = 0; i < result.recordset.length; i++) {
var item = result.recordset[i];
untranslated.push(item.name)
}
// I'm messing it up here somewhere.
untranslated.map(item => {
translate(item, { from: 'mk', to: 'en' }).then(result => {
translated.push(result);
})
})
console.log(translated); // Logs [];
}).catch(err => {
console.log(err);
sql.close();
});
【问题讨论】:
标签: javascript asynchronous promise google-translate