gpt4 book ai didi

node.js - nodejs中的同步循环

转载 作者:行者123 更新时间:2023-11-29 12:26:44 28 4
gpt4 key购买 nike

//Importing: postges DB connection
var pg = require('pg');
var conString = "postgres://readxxx:p@ssword@vmwoxxx-tst:8888/worxxx";
var prvsiteid = '';
var cursiteid = '';
var qurystring = '';

pg.connect(conString, function(err, client, done) {
if (err) {
return console.error('error fetching client from pool', err);
return;
}

client.query("select site_id,created_at,started_at,completed_at,notes,finish_code from _background_tasks where finish_code > 0 and site_id > 0 and abs(extract(Epoch from (now()::timestamp without time zone - completed_at)))/60 <= 4600 order by site_id asc", function(err, result1) {
done();
if (err) {
return console.error('error running query', err);
return;
}
for (var i = 0; i < result1.rowCount; i++) {
cursiteid = result1.rows[i].site_id;
if (prvsiteid != cursiteid) {
prvsiteid = cursiteid;
qurystring = "select trim(su.name) as name, case When trim(su.email) is null then su.name || '@netapp.com' when trim(su.email) > '' then su.name || '@netapp.com' else su.name end uemail,su.friendly_name as frdname from system_users su where su.state = 'active' and su.id in (select distinct(system_user_id) from users u where u.site_id = " + cursiteid + "and u.admin_level >= 5)"
client.query(qurystring, function(err, result2) {
done();
if (err) {
return console.error('error running query', err);
return;
}
for (var j = 0; j < result2.rowCount; j++) {
console.log(cursiteid, result2.rows[j].name, result2.rows[j].uemail, result2.rows[j].frdname);
}
});
}
console.log(result1.rows[i].site_id, result1.rows[i].created_at, result1.rows[i].started_at, result1.rows[i].completed_at);
}
});
});

我知道 NodeJS 程序是异步的,但我希望它是同步的。

for loop(outer) --> for loop(inner) 当外部 forloop 随新站点 ID 发生变化时,我想向内部循环中的所有 emailid 发送电子邮件,并且每个外部循环站点的结果行必须打印出来。

最佳答案

  1. 如果你正在使用的库不支持同步操作,你就不能同步使用它而不会厌恶(你确实想要在你的代码中厌恶。无论老板多么紧迫).
  2. 您可以相当简单地使用 Promises 对异步操作执行循环和其他操作。 ,具体来说, bluebird 它支持采用基于回调的异步函数并将它们转换为 Promise 就绪函数的能力。

关于node.js - nodejs中的同步循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31635023/

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