【发布时间】:2016-08-25 18:47:05
【问题描述】:
我想使用三个函数来强制它们按顺序执行。
函数 1 发送一个 http 请求,获取 JSON 数据并将其保存到一个文件中 函数 2 循环遍历该文件并根据缺失的差异值/值更新数据库 函数 3 将遍历新更新的数据库并创建第二个 json 文件。
目前,函数 1 可以自行完美运行,setInterval 为 30 分钟。
我想在功能 1 完成后启动功能 2。然后函数 2 完成后函数 3。
使用 Promise 我试图将函数 2 附加到一个简单的已完成日志中,以了解如何使用 Promise,但没有取得多大成功。 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"));
【问题讨论】:
标签: javascript node.js promise