将附加参数传递给promise链

时间:2018-03-28 14:54:42

标签: javascript node.js promise

我有一系列的承诺,其中一些承诺在链中传递参数,如下所示:

stepOne(argument).catch(errorHandler)
  .then(stepTwo).catch(errorHandler)
  .then(stepThree).catch(errorHandler)
  .then(stepFour).catch(errorHandler)
...

function stepTwo(data)
{
  // stuff
  return promise
    .then(function(data){ return Promise.resolve({arg: 'a', arg2: 'b'); }) //pass this to step three, step three does the same to four
    .catch(function(err){ return Promise.reject(err); });    
}

我希望能够将它与链级调用函数中的另一个参数结合起来,如下所示:

stepOne(argument).catch(errorHandler)
  .then(stepTwo).catch(errorHandler)
  .then(stepThree(dataFromTwo, extraArg)).catch(errorHandler)
  .then(stepFour(dataFromThree, extraArg, moreArg)).catch(errorHandler)
...

目标是重用代码并避免重复。但是,无论何时我尝试这样做,我最终得到未定义的值或覆盖一个或另一组参数,我该怎么做?理想情况下,我不想仅仅为了合并参数而做出多余的承诺。

0 个答案:

没有答案