【发布时间】:2016-06-24 12:47:37
【问题描述】:
我正在尝试将客户端的 ES6 生成器与 Angular $http 服务一起使用。如果可能的话,我希望能够在不使用回调的情况下使用 $http 服务。喜欢:
var gen = function* () {
var test = yield $http.get('/test/');
console.log(test);
};
var http = gen();
http.next();
http.next(); // returns undefined
/// or ///
var gen = function* () {
yield $http.get('/test/');
};
console.log(http.next()); //returns a promise object which won't allow me to use the needed data
之所以这么问是因为我想模仿这个演示https://youtu.be/QO07THdLWQo?t=4m58s
我只是在寻找最简单、最直接的方法。有什么建议吗?
【问题讨论】:
-
生成器并不神奇地知道承诺。您需要一些跑步者来异步推进它们。您使用的是哪个库?
-
它返回一个承诺。生成器不处理异步性质
-
我只是想遵循与上面链接类似的逻辑(我更新了帖子)
-
@muninn9:如果你足够密切地关注视频,他提到你必须使用
smartCode、co、Promise.coroutine或Q.spawn之类的东西。你不做那些事。他在代码中留下的console.log(gen.next(…))之类的东西不再适用于产生承诺 - 他应该删除它,这令人困惑。
标签: javascript angularjs