传递一个promise的返回值作为另一个的参数
Passing return value of one promise as a parameter for another
这可能是一个非常简单的问题,但这里是:
我使用的是Bluebird-promise,但我想将从一个promise返回的值作为参数传递给另一个。我目前的代码是:
Promise.props
reports: @app.Reports.getReports()
years: @app.Years.getYears()
.then (promised) =>
console.log promised
但实际上,我希望能够使用promised.years
作为getReports
的第一个参数,所以它将类似于reports: @app.Reports.getReports(promised.years)
我试着嵌套承诺,但它爆炸了。我试着从报告定义中获得年份承诺,但它爆炸了。
有什么想法吗?
谢谢!
是的,嵌套是在这里进行的方式-当然不会爆炸:
@app.Years.getYears()
.then (years) =>
@app.Reports.getReports(years)
.then (reports) ->
console.log {years, reports}
您无法在getReports
调用中访问promised.years
,因为它不在作用域中-它是在首先调用getReports
之后在中传递的回调函数的参数。
写这篇文章的另一种方法是分别构建promise,并将它们与您使用的Promise.props
连接在一起:
yearsPromise = @app.Years.getYears()
reportsPromise = yearsPromise.then(@app.Reports.getReports)
Promise.props
years: yearsPromise,
reports: reportsPromise
.then (promised) ->
console.log promised
(请注意,您不能在对象文字中引用另一个属性)
相关文章:
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 将返回值作为主干视图方法之间的参数传递
- 将一个函数作为参数传递给另一个函数,每次调用函数时检查返回值
- 按参数更改函数的返回值
- 使用参数调用 javascript 函数并在页面加载中读取返回值
- 使用isNan()函数将参数从html传递给javascript,并检查值然后返回值
- 传递一个promise的返回值作为另一个的参数
- 使用不同的参数多次调用同一函数.完成时:在其他函数中使用每个返回值
- 在 javascript 中获取函数返回值作为参数
- 如何打印或调用一个具有多个参数的函数的返回值
- 返回作为参数传入的函数的值
- 文档集合(类型数组)在JSDoc中返回值和参数
- 从函数返回值作为jQuery参数的值
- 是否有某种方式,我可以传递一个辅助函数的返回值到另一个作为Handlebars参数
- 在jquery的另一个函数参数中使用返回值
- JavaScript缓存返回值的函数有多个参数
- Javascript函数参数的返回值
- JavaScript传递函数参数和返回值
- 带参数的调用函数和带其他参数返回值的调用函数有什么不同
- 如何在 JSDoc 中将对象数组指定为参数或返回值