【问题标题】:NodeJS nimble module series function does not workNodeJS 敏捷模块系列功能不起作用
【发布时间】:2023-04-07 07:51:01
【问题描述】:

这段代码有什么问题,它应该运行所有 3 个函数,但它只运行第一个:

var flow = require('nimble');
function first() {
    setTimeout(function () {
        console.log('First');
    }, 500);
}

function second() {
    setTimeout(function () {
        console.log('Second');
    }, 500);
}

function last() {
    setTimeout(function () {
        console.log('Last');
    }, 500);
}

flow.series([first, second, last]);

【问题讨论】:

    标签: javascript node.js flow-control


    【解决方案1】:

    Nimble 要求在系列中运行的每个函数调用一个回调函数,告诉 Nimble 继续执行系列中的下一个任务。示例就在Nimble homepage 上。

    这是您的代码的更新版本。

    var flow = require('nimble');
    function first(callback) {
      setTimeout(function() {
        console.log('First');
    
        callback();
      }, 500);
    }
    
    function second(callback) {
      setTimeout(function() {
        console.log('Second');
    
        callback();
      }, 500);
    }
    
    function last(callback) {
      setTimeout(function() {
        console.log('Last');
    
        callback();
      }, 500);
    }
    
    flow.series([first, second, last]);
    

    【讨论】:

      【解决方案2】:

      Nimble 可以接受串行或并行的回调函数,但您需要以数组的形式提供它们。

      // first we need to install nimble with 'npm install nimble'
      //there is a another flow control tool called nimble
      //we need to add it using require.is small codebase
      
      var flow = require('nimble');
      
      //in nimble we will pass each set of function as a element of array
      //hence we are including them in [] 
      
      flow.series([
          function(callback){
              setTimeout(function(){
                  console.log('I execute first');
                  callback();
              },1000);
          },
          function(callback){
              setTimeout(function(){
                  console.log('I execute second');
                  callback();
              },2000);
          },
          function(callback){
              setTimeout(function(){
                  console.log('I execute third');
                  callback();
              },3000);
          },
      ]);

      我想它会帮助你更多地理解它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-18
        • 1970-01-01
        • 2018-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-01
        • 1970-01-01
        相关资源
        最近更新 更多