我能';t在javascript中计算延迟和有序表达式

我能';t在javascript中计算延迟和有序表达式,javascript,node.js,Javascript,Node.js,在Javascript(Node)中,我应该按顺序和延迟运行几个表达式。这不起作用,因为它们都是以混合顺序立即运行的 var i=0; 函数运行(){ console.log(i++); }; 设置超时(运行,500); 设置超时(运行,500); 设置超时(运行,500); 设置超时(运行,500)看一看承诺,特别是进入。他们有一种延迟方法,可以完全满足你的要求 const Promise = require('bluebird'); Promise.resolve(1) .del

在Javascript(Node)中,我应该按顺序和延迟运行几个表达式。这不起作用,因为它们都是以混合顺序立即运行的

var i=0;
函数运行(){
console.log(i++);
};
设置超时(运行,500);
设置超时(运行,500);
设置超时(运行,500);

设置超时(运行,500)看一看承诺,特别是进入。他们有一种延迟方法,可以完全满足你的要求

const Promise = require('bluebird');

Promise.resolve(1)
    .delay(500)
    .then((n) => {
        console.log(n);
        return ++n;
    })
    .delay(1000)
    .then(n => console.log(n));

var i = 0;

function run (delay) {
  return function () {
    return new Promise(function (resolve, reject) {
      setTimeout(function () {
        console.log(i++);
        resolve();
      }, delay);
    });
  };
}

Promise.resolve()
  .then(run(500))
  .then(run(1000))
  .then(run(1500));