Angularjs承诺

时间:2018-02-15 07:54:14

标签: angularjs node.js

大家好我使用angularjs 1.3.0 john papa风格,我有两个承诺......如果第一个承诺让我回复,我可以执行第二个承诺,任何人都可以帮忙吗?这是我的代码:

function signup() {
            var promises = [updateProfile(vm.user), checkCaptcha( vm.captchaData)];
            return dataservice.ready(promises).then(function () {
               // there call promise in dataservice
            })

        }

如果checkCaptcha == true ..我需要调用updateProfile。

我是这样做的:

function signup() {
            $q.when(dataservice.checkCaptcha(vm.captchaData))
            .then(test)

            function test(result){
                console.log(result);
                if(result){
              var promises = [updateProfile(vm.user)];
            return dataservice.ready(promises).then(function () {
                // there call only updateProfile (put request)
            })
                }
            }


        }

是坏还是我的方式正确? 最好的问候。

1 个答案:

答案 0 :(得分:0)

让我们说我们有这两个功能:

Properties.Settings.Default.Databases.Password

然后我们可以做这个链。 。doFirst(),然后(checkAuth)。然后(workWithUser);

两个要点。

  • 您的检查功能应始终返回值。 (在另一种情况下,你 将得到未定义)。随意返回承诺或纯粹的价值。
  • 你应该记住workWithUser 函数应始终采用单一类型的对象 - 经过身份验证的用户。这使您的代码更具可预测性。

顺便说一下,我有这样的功能组合的npm包 https://www.npmjs.com/package/@drag13/when-do 可能会有用。