Promise会在等待超时时立即解析

时间:2017-10-11 12:04:43

标签: javascript node.js promise es6-promise resolve

我今天开始学习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的理解是错误的,但我不确定我在这里做错了什么。希望有人可以帮助我。

干杯

0 个答案:

没有答案