在Angular(以及其他JavaScript框架)中,来自http请求的数据使用promise进行异步检索,并且可以使用回调将其设置为变量。够简单。但我越来越厌倦了编写代码,看起来像这样:使用promise和避免回调的异步设置变量
service.getWidgetsAsync(function (result) { vm.widgets = result.data });
有没有,我没有想到的,更类似于这样写上面的任何方式....?
vm.widgets = service.getWidgetsAsync();
“不”可能是一个有效的答案。 :-)
(实施例的getWidgetsAsync加入到澄清:)
function getWidgetsAsync(callback) {
$http.get(APPBASEURL + 'Foo/GetWidgets')
.then(function(result) {
callback(result);
});
}
我的例子中没有看到任何承诺。回调函数基本上是一个承诺的对立面。 – JLRishe 2014-10-02 18:02:29
我的理解是'getWidgetsAsync'是承诺,并将回调传递给它。 – RJB 2014-10-02 18:03:09
您是否将“承诺”与“异步功能”相混淆?承诺有一个'.then()'方法。你不直接称他们为功能。你可以命名一个你使用的实际API而不是像“getWidgetsAsync”这样的假名吗?然后我们可以找出它是否与承诺有关。 – JLRishe 2014-10-02 18:05:27