【发布时间】:2018-03-28 20:23:37
【问题描述】:
使用蓝鸟我该如何做以下工作。
groupCast = [Promise.resolve("name1"), Promise.resolve("name2"),Promise.resolve("name3")]
Promise.map( groupCast , function (group){
Promise.resolve($http.get("/getdata" , params:{group:group}))
.then(function(response){ console.log(group," done")return response}))
return response
})
.then(function(resp){console.log(resp)})
如果每个组对 http 调用的响应是 "one" 、 "two" 、 "three" 然后我们会期望:
"name1 done";
"name2 done";
"name3 done";
[ "one" , "two" ,"three" ]
但是我得到了
[ "one" , "two" ,"three" ]
"name1 done";
"name2 done";
"name3 done";
我该如何解决它。我不能使用异步等待,因为 IE 不支持它。
【问题讨论】:
-
请修正缩进、分号和大括号匹配。看起来您忘记了
return,但我无法通过查看该文本来判断。 -
另外,请注意 AngularJS 在其
$q服务中拥有自己的 Promise 实现,它应该完全有能力,而无需使用单独的 Promise 库。 -
请注意,外部 Promise 库未与 AngularJS 框架集成。只有在 AngularJS 执行上下文中应用的操作才能受益于 AngularJS 数据绑定、异常处理、属性监视等。所以最好使用AngularJS $q Service promise library。
标签: angularjs asynchronous promise bluebird