Javascript 承诺:按链顺序向项传递新参数

Javascript 承诺:按链顺序向项传递新参数,javascript,promise,q,Javascript,Promise,Q,我在用电话。我试图将多个返回承诺的函数按顺序链接在一起,但我希望传入新的参数 e、 g.我想做这个伪代码: var func1Param = 'abc'; var func2Param = 'def'; var func3Param = 'ghi'; func1(func1Param).then(func2(func2Param)).then(func3(func3Param)); 到目前为止,为了处理这个问题,我一直在做如下的事情,然后让第一个函数拥有所有的参数,并将它们传递给第二个函数,

我在用电话。我试图将多个返回承诺的函数按顺序链接在一起,但我希望传入新的参数

e、 g.我想做这个伪代码:

var func1Param = 'abc';
var func2Param = 'def';
var func3Param = 'ghi';

func1(func1Param).then(func2(func2Param)).then(func3(func3Param));
到目前为止,为了处理这个问题,我一直在做如下的事情,然后让第一个函数拥有所有的参数,并将它们传递给第二个函数,以及解析,等等。 e、 g

然而,将参数传递给一个不需要它们的函数,从而将这些参数传递给一个确实需要它们的函数,这似乎有些草率


最好的方法是什么?我想出的每一个选择要么不起作用,要么看起来有点疯狂复杂。必须有一种简单的方法来正确执行此操作。

我不确定我是否正确理解了这一点,但如果您想向(承诺)回调添加默认/预先指定的变量,您可以使用
Function.bind(thisArg[,arg1[,arg2[,…])

例如


你能给出每个函数的定义吗?“最好”的方法取决于你对参数的处理。第一种方法有什么问题?这就是我所想的。我希望有一种标准的方法来绑定参数,而不必指定上下文。这看起来很有希望;-)。我现在正在测试,谢谢!谢谢大家!!这是美丽的作品,正是我所寻找的。这使一切变得更简单。如果需要的话,我甚至可以拉入最后一个链式承诺的结果(在最后一个参数中加载)。是的,使用bind将提供提供的参数作为调用函数的第一个参数,其他所有参数仍然传递到末尾。
var parms = { func1 : 'abc', func2: 'def', func3: 'ghi' }
func1(params).then(func2).then(func3);
function1(foo)
    .then(function2.bind(this, bar)
    .then(function3.bind(this, baz)