我有三个功能,我想使用承诺强制他们按顺序执行。node.js承诺不强制命令执行的功能
功能1发送HTTP请求,获取JSON数据,并将其保存到文件 功能通过该文件2个回路并根据该差分值更新数据库/值丢失 功能3将循环通过新近更新的数据库,并创建第二个json文件。
当前函数1以30分钟的setInterval自身完美工作。
我想在功能1结束时启动功能2。然后功能2完成后功能3。
使用承诺我试图附加功能2到一个简单的完成日志,以了解如何使用承诺,但没有获得太大的成功。来自for循环日志的项目,但我的for循环之前我的Finished/err日志不应该发生。有什么建议么?
function readJson() {
return new Promise(function() {
fs.readFile(__dirname + "/" + "bitSkin.json", 'utf8', function read(err, data) {
if (err) { throw err; }
var bitCon = JSON.parse(data);
for(var i=0; i<7; i++) { //bitCon.prices.length; i++) {
var price = bitCon.prices[i].price
var itemName = bitCon.prices[i].market_hash_name;
(function() {
var iNameCopy = itemName;
var priceCopy = price;
logger.info(iNameCopy);
}());
}
});
});
};
function fin() {
logger.info("Finished");
}
readJson().then(fin(), console.log("err"));
只是想说。这样一个辉煌的答案,谢谢。 – Matt
我在想,如果你看看http://stackoverflow.com/questions/36955428/nested-sql-queries-inside-for-loop-node-js-not-working?如果您有任何建议,会很乐意提供建议! – Matt