嵌套承诺封装公共流

时间:2015-06-06 22:41:29

标签: javascript promise

我对javascript中的承诺很陌生,我仍然试图找出在javascript中将承诺链接起来的最好方法,例如。

something().then(function(result){
  console.log(result);
})

function something(){
  return another().then(function(result){
    return "message";
  })
}

如果something()和另一个()都返回promises,则在console.log()语句之前调用另一个()及其then(),即它们是否会加入promers的外部链或者是outter链完成是因为它已经成功创建了内链?

我们的实际链通常更长更平,但我想封装一些重复的代码,例如,我们做了很多返回promises的HTTP调用,我们想在继续链之前执行一些常见的验证但是我们不要我想在每个链中重复第二步。

1 个答案:

答案 0 :(得分:0)

内在的承诺将被束缚在外在的承诺中,外在的承诺将不会实现,直到内在的承诺也实现。

.then()处理程序返回一个promise会自动链接到该promise链,并且在内部一个也被解析之前,外部的一个将不会被解析。这是承诺的超级重要和有用的能力。

工作演示:http://jsfiddle.net/jfriend00/L6u2sw73/