在异步内部函数返回 [UI-路由器和 HTML 服务] 之后返回外部 fn

returning outer fn after async inner function returns [ui-router and htmlservice]

本文关键字:返回 服务 之后 HTML 外部 fn 路由器 内部函数 异步 UI-      更新时间:2023-09-26

我正在尝试在应用程序脚本中使用客户端js HtmlService使用ui-router。经过详尽的尝试,我遇到了简单的js问题

.state('state1', {
        url: base+'?page=state1_KB',
        views: {
                'content':{
                     template: 
                     function(){
                         google.script.run.withFailureHandler(notemp).withSuccessHandler(temp).include(obj); 
                         function temp(view){
                             console.log(view); //This logs successfully.
                             return view; //This works too I suppose
                           }
                         return temp(view); //This doesn't work obviously
                        },
                     controller: 'state1Controller'
                  }
                 }
    })

include(obj)获取模板并将其返回给temp(view)。我需要从temp(view)返回值。但显然它不会返回任何东西。

google.script.run调用temp(view)后如何返回外部函数?

对于纯粹的JS爱好者来说,我想它与这个非常相似:

function outer(){
  var a = "b";
  setTimeout(function(){console.log("this is Log"); a = 'c';}, 2000);
  return a;
}

从 ui-router 或角度的角度来看,我是否可以做一些更简单的事情来实现我在这里尝试的事情?

这样的东西应该有效

    templateProvider: 
             function($q){
                        var deferred = $q.defer();
                        var temp = function(view){
                             console.log(view);
                             deferred.resolve(view);
                        }
                        google.script.run
                                .withFailureHandler(notemp)
                                .withSuccessHandler(temp)
                                .include(obj);
                        return deferred.promise;
                     },
                     controller: 'state1Controller'
                  }