相关疑难解决方法(0)

如何在.then()链中访问先前的promise结果?

我已经将我的代码重组为承诺,并构建了一个由多个回调组成的精彩长扁平承诺链.then().最后我想返回一些复合值,并且需要访问多个中间承诺结果.但是,序列中间的分辨率值不在最后一个回调的范围内,我该如何访问它们?

function getExample() {
    return promiseA(…).then(function(resultA) {
        // Some processing
        return promiseB(…);
    }).then(function(resultB) {
        // More processing
        return // How do I gain access to resultA here?
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript scope promise bluebird es6-promise

607
推荐指数
10
解决办法
18万
查看次数

如何访问AngularJS保证链中先前承诺的结果?

我有以下代码:

authService.authenticate()
.then(function (user) {
  return Task.all({user: user})
})
.then(function (tasks) {
  // How to access user object here?
})
Run Code Online (Sandbox Code Playgroud)

是否有一些内置的方法将user对象传递给第二个then函数而不执行以下操作:

var user2 = null;
authService.authenticate()
.then(function (user) {
  user2 = user
  return Task.all({user: user})
})
.then(function (tasks) {
   // Use user2 here
})
Run Code Online (Sandbox Code Playgroud)

或这个:

authService.authenticate()
.then(function (user) {
  var defer = $q.defer()
  Task.all({user: user}).then(function (tasks) {
    return defer.resolve(user, tasks)
  })
  return defer.promise
})
.then(function (user, tasks) {
   // Use user2 here
})
Run Code Online (Sandbox Code Playgroud)

或通过then直接调用第二个来嵌套它们 …

javascript promise angularjs

5
推荐指数
1
解决办法
2578
查看次数

标签 统计

javascript ×2

promise ×2

angularjs ×1

bluebird ×1

es6-promise ×1

scope ×1