我今天开始学习JavaScript Promises。我在具有多个模块的NodeJS环境中工作。为了更好地理解诺言如何运作,我已经制作了一个测试功能,可以在5秒后解决这个问题。这就是我所做的:
const utils = require('./utils');
const labels = {
init(req, res, next) {
utils.loopDates(options).then(build.init(options, req, res, next));
}
};
在utils.loopDates()
函数中,我执行以下操作:
const utils = {
loopDates(options) {
return new Promise((resolve, reject) => {
options.test = 'test';
setTimeout(function() {
resolve(options)
}, 5000)
});
}
}
module.exports = utils;
这是我对应该发生的事情的理解;承诺在5秒后解决,然后build.init
函数触发。但实际发生的是build.init
函数立即触发。承诺似乎忽略了超时。
可能我对Promises的理解是错误的,但我不确定我在这里做错了什么。希望有人可以帮助我。
干杯