在javascript中同步

时间:2013-12-25 15:54:20

标签: javascript function

我的javascript程序存在问题

globID = oController.getGlobalId();
  console.log(globID);
//instructions using globID

oController.getGlobalId()
{

//instructions

console.log(ID);

return ID;
}

当我调用该函数时,undefined的值被赋予globID。 并在日志中有这个顺序: 1- console.log(globID); 2- console.log(ID);

是否有执行该函数的解决方案,然后将实际值分配给globID?

非常感谢。

最诚挚的问候。

2 个答案:

答案 0 :(得分:0)

您尚未正确定义getGlobalId方法。它应该看起来像:

oController.getGlobalId = function () {
    //instructions
    console.log('in function', ID);
    return ID;
}

然后

globID = oController.getGlobalId();
  console.log(globID);

可以正常工作(并以正确的顺序为您提供两个控制台日志)

DEMO

答案 1 :(得分:0)

我无法创建一个小提琴,因为odata服务必须在特定环境中执行,有代码: 在视图中:

globID = oController.getGlobalId();

console.log('view',globID);

//instructions using globID

在控制器中:

getGlobalId:function() {





oModel = this.getModel();



target =this.getSystemName();



oModel.read(/'SolutionManager(\'0050569b-0081-1ee1-9ff7-a45fec113fb6\')/TechnicalSystemsStatus',null, null, true, function(oData,oResponse){

for (var y = 0; y < number; y++) {




if ( oData.results[y].ID == target)





{

                globID = oData.results[y].GlobalID;

               console.log('controller',globID);


return globID;



}

//......

控制台显示(两行显示之间有小的延迟):

日志:viewundefined

日志:controller0050569b-0081-1ee1-9fb6-27bed6190dcf

我确定延迟是由odata电话引起的,但我没有找到解决方案

感谢tewathia的努力