同步调用AngularJS

时间:2017-08-18 13:16:52

标签: angularjs synchronous

方法1

{
    var myform = getForm();
    var myVar = $sce.trustAsHtml(myForm);
}

方法2

var getForm = function () {
    var form = "";
    //API CALL here using custom service
    .then(
    function (response) {
          form = //processing here
    },
    function (response) {
    }
    return form;
};

在下面的场景中,我调用getForm()方法并需要从表单变量处理数据。但它在处理之前总是返回空白。

如何才能使此调用同步,以便getForm()可以返回已处理的数据并返回method 1

1 个答案:

答案 0 :(得分:2)

在这里处理承诺:

var myform = getForm().then(
    (form) => {
       $sce.trustAsHtml($sce.valueOf(form))
    },
    (error) => {
       // getForm - fail
    });

方法2 - 返回承诺而不是形式值

var getForm = function () {
    return //API CALL here using custom service
};

甚至更容易:

yourService.serviceMethod().then(
    (form) => {
       $sce.trustAsHtml(form)
    },
    (error) => {
       // getForm - fail
});