浏览代码

optional return value from evalScript

David Rose 16 年之前
父节点
当前提交
8966fe7dbf
共有 1 个文件被更改,包括 7 次插入4 次删除
  1. 7 4
      direct/src/showutil/runp3d.py

+ 7 - 4
direct/src/showutil/runp3d.py

@@ -338,18 +338,21 @@ class AppRunner(DirectObject):
         if expression:
         if expression:
             self.evalScript(expression)
             self.evalScript(expression)
 
 
-    def evalScript(self, expression):
+    def evalScript(self, expression, needsResponse = False):
         """ Evaluates an arbitrary JavaScript expression in the global
         """ Evaluates an arbitrary JavaScript expression in the global
         DOM space.  This may be deferred if necessary if self.dom has
         DOM space.  This may be deferred if necessary if self.dom has
-        not yet been assigned. """
+        not yet been assigned.  If needsResponse is true, this waits
+        for the value and returns it, which means it may not be
+        deferred. """
 
 
         if not self.dom:
         if not self.dom:
             # Defer the expression.
             # Defer the expression.
+            assert not needsResponse
             self.deferredEvals.append(expression)
             self.deferredEvals.append(expression)
         else:
         else:
             # Evaluate it now.
             # Evaluate it now.
-            self.scriptRequest('eval', self.dom, value = expression,
-                               needsResponse = False)
+            return self.scriptRequest('eval', self.dom, value = expression,
+                                      needsResponse = needsResponse)
         
         
     def scriptRequest(self, operation, object, propertyName = '',
     def scriptRequest(self, operation, object, propertyName = '',
                       value = None, needsResponse = True):
                       value = None, needsResponse = True):