javascript - AngularJs - 在工厂内的多个函数之间共享数据

标签 javascript angularjs promise angular-promise

我刚刚开始学习 Angularjs,所以我可能用错了整个东西,但请纠正我。

我有以下工厂是这样的:

app.factory('MenuService',['service1','service2','service3',function(service1,service2,service3){

    var var1 = [],
        var2 = [],
        var3 = [];

    service1.getDataMethod(function(data){
        // processes data and saves it in var1
    });

    service2.getDataMethod2(function(data)){

    });

    /// same goes for service3.

    return {"prop2": var1, "prop2" : var2, "prop3": var3};
}])

我需要根据第一个服务返回的数据处理 service2 返回的数据,但每次我尝试访问它时,变量都是空的。

我知道函数返回一个 promise ,有没有办法告诉第二个函数等待第一个函数完成以便能够使用它带来的数据?

我希望我让自己明白了。如果我应该添加其他内容,请告诉我。

最佳答案

像这样?

service1.getDataMethod(function(data){
     // processes data and saves it in var1
}).then(function(data) {
  return service2.getDataMethod2(data)
})

基本上每个 promise 都有 .then() 方法。所以你可以根据需要链接它 a.then().then().then()

此外,一些 promise 实现具有方法包装器,例如 .success().error()。这些方法的工作方式类似于 .then()

关于javascript - AngularJs - 在工厂内的多个函数之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38876306/

相关文章:

javascript - 使用 promises 增量加载图像

javascript - 根据数组返回 DOM 元素

javascript - 按钮重置时 Formik 清除表单

javascript - 如何将html div复制到另一个div而不显示none div

javascript - 找出日期中的月份的周数

angularjs - ngTags输入: disabling the input for tags upon a condition

javascript - Angular js - 使用正确的空格在模态中格式化字符串

angular - 从 Angular 中的 promise 返回值

javascript - For 循环中的 Promises

angularjs - 在 angularstrap 日期选择器中手动触发显示/隐藏