我有一个promise链,如下所示:
...
const id = "someId";
function1(id)
.then(function2)
.then(function3(id))
.then(function4)
.then(result => {
res.status(200).send(result);
})
.catch(error => {
res.status(500).end();
});
...
其中需要依次调用function1,function2,function3和function4,并且每个函数都使用前一个返回的结果。我遇到的问题是function3需要id参数,但是每当我如上所述设置它时,function3的结果就不会传递给function4。如何将id参数传递给function3 ,并将结果从function3传递给function4?
答案 0 :(得分:4)
您是在不遵守信息链的情况下直接致电Invoke()
。
您必须这样做:
function3
或者替代方法是使用 .bind
.then(() => function3(id))
// or if you need the response from `function2`
.then(res => function3(id, res))
否则,.then(function3.bind(null, id)) // instead of null you can pass some context
将需要返回一个函数,function3
处理程序将由.then
处理程序使用。