This file is indexed.

/usr/share/doc/libjs-mathjax-doc/html/api/callback.html is in libjs-mathjax-doc 2.7+20171212-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>The MathJax.Callback Class &mdash; MathJax 2.7 documentation</title>
  

  
  
  
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  

  

  
        <link rel="index" title="Index"
              href="../genindex.html"/>
        <link rel="search" title="Search" href="../search.html"/>
    <link rel="top" title="MathJax 2.7 documentation" href="../index.html"/>
        <link rel="up" title="The MathJax API" href="index.html"/>
        <link rel="next" title="The MathJax.Callback.Queue Class" href="queue.html"/>
        <link rel="prev" title="The MathJax.HTML Object" href="html.html"/> 

  
  <script src="../_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

   
  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search">
          

          
            <a href="../index.html" class="icon icon-home"> MathJax
          

          
          </a>

          
            
            
              <div class="version">
                2.7
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <p class="caption"><span class="caption-text">Basic Usage</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../mathjax.html">What is MathJax?</a></li>
<li class="toctree-l1"><a class="reference internal" href="../start.html">Getting Started with MathJax</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installing and Testing MathJax</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration.html">Loading and Configuring MathJax</a></li>
<li class="toctree-l1"><a class="reference internal" href="../config-files.html">Combined MathJax Configurations</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../tex.html">MathJax TeX and LaTeX Support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../mathml.html">MathJax MathML Support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../asciimath.html">MathJax AsciiMath Support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../output.html">MathJax Output Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="../font-support.html">MathJax Font Support</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../localization.html">MathJax Localization</a></li>
<li class="toctree-l1"><a class="reference internal" href="../safe-mode.html">MathJax Safe-mode</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../community.html">The MathJax Community</a></li>
</ul>
<p class="caption"><span class="caption-text">Configuration options</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../options/index.html">Configuration options</a></li>
</ul>
<p class="caption"><span class="caption-text">Advanced topics</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../advanced/model.html">The MathJax Processing Model</a></li>
<li class="toctree-l1"><a class="reference internal" href="../advanced/startup.html">The MathJax Startup Sequence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../advanced/synchronize.html">Synchronizing Your Code with MathJax</a></li>
<li class="toctree-l1"><a class="reference internal" href="../advanced/dynamic.html">Loading MathJax Dynamically</a></li>
<li class="toctree-l1"><a class="reference internal" href="../advanced/typeset.html">Modifying Math on the Page</a></li>
<li class="toctree-l1"><a class="reference internal" href="../advanced/toMathML.html">Obtaining the MathML for an Expression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../advanced/extension-writing.html">Writing MathJax Extensions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../advanced/debugging-tips.html">Debugging Tips</a></li>
<li class="toctree-l1"><a class="reference internal" href="../advanced/mathjax-node.html">MathJax on NodeJS</a></li>
</ul>
<p class="caption"><span class="caption-text">The MathJax API</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Details of the MathJax API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="variable.html">The MathJax variable</a></li>
<li class="toctree-l2"><a class="reference internal" href="hub.html">The MathJax.Hub object</a></li>
<li class="toctree-l2"><a class="reference internal" href="ajax.html">The MathJax.Ajax object</a></li>
<li class="toctree-l2"><a class="reference internal" href="message.html">The MathJax.Message object</a></li>
<li class="toctree-l2"><a class="reference internal" href="html.html">The MathJax.HTML object</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">The MathJax.CallBack class</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#specifying-a-callback">Specifying a callback</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#executing-a-callback-object">Executing a Callback Object</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#callback-object-properties">Callback Object Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="#callback-object-methods">Callback Object Methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="#mathjax-callback-methods">MathJax.Callback Methods</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="queue.html">The MathJax.CallBack.Queue class</a></li>
<li class="toctree-l2"><a class="reference internal" href="signal.html">The MathJax.CallBack.Signal class</a></li>
<li class="toctree-l2"><a class="reference internal" href="localization.html">The MathJax.Localization object</a></li>
<li class="toctree-l2"><a class="reference internal" href="inputjax.html">The MathJax.InputJax class</a></li>
<li class="toctree-l2"><a class="reference internal" href="outputjax.html">The MathJax.OutputJax class</a></li>
<li class="toctree-l2"><a class="reference internal" href="elementjax.html">The MathJax.ElementJax class</a></li>
<li class="toctree-l2"><a class="reference internal" href="jax.html">The base Jax class</a></li>
<li class="toctree-l2"><a class="reference internal" href="object.html">The MathJax Object-Oriented Programming Model</a></li>
</ul>
</li>
</ul>
<p class="caption"><span class="caption-text">Miscellanea</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../misc/accessibility-features.html">Accessibility features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../misc/browser-compatibility.html">Browser Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal" href="../misc/epub.html">EPUB3 Reading Systems</a></li>
<li class="toctree-l1"><a class="reference internal" href="../misc/badges.html">MathJax Badges and Logo</a></li>
<li class="toctree-l1"><a class="reference internal" href="../misc/articles.html">Articles and Presentations</a></li>
<li class="toctree-l1"><a class="reference internal" href="../misc/platforms.html">Using MathJax in Web Platforms</a></li>
<li class="toctree-l1"><a class="reference internal" href="../misc/faq.html">MathJax FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../misc/mathjax-in-use.html">MathJax in Use</a></li>
</ul>
<p class="caption"><span class="caption-text">Upgrading MathJax</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../upgrading/index.html">Upgrading MathJax</a></li>
</ul>
<p class="caption"><span class="caption-text">Reference Pages</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../reference/HTML-snippets.html">HTML snippets</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/CSS-styles.html">CSS style objects</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/localization-strings.html">Localization strings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/glossary.html">Glossary</a></li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">MathJax</a>
        
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../index.html">Docs</a> &raquo;</li>
        
          <li><a href="index.html">The MathJax API</a> &raquo;</li>
        
      <li>The MathJax.Callback Class</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
            <a href="../_sources/api/callback.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="the-mathjax-callback-class">
<span id="api-callback"></span><h1>The MathJax.Callback Class<a class="headerlink" href="#the-mathjax-callback-class" title="Permalink to this headline"></a></h1>
<p>The <code class="docutils literal"><span class="pre">MathJax.Callback</span></code> object is one of the key mechanisms used by
MathJax to synchronize its actions with those that occur
asynchronously, like loading files and stylesheets.  A <cite>Callback</cite>
object is used to tie the execution of a function to the completion of
an asynchronous action.  See <a class="reference internal" href="../advanced/synchronize.html#synchronization"><span class="std std-ref">Synchronizing with MathJax</span></a> for more details, and <a class="reference internal" href="../advanced/callbacks.html#using-callbacks"><span class="std std-ref">Using Callbacks</span></a> in particular for examples of how to specify and
use MathJax <cite>Callback</cite> objects.</p>
<div class="section" id="specifying-a-callback">
<h2>Specifying a callback<a class="headerlink" href="#specifying-a-callback" title="Permalink to this headline"></a></h2>
<p>When a method includes a callback as one of its arguments, that
callback can be specified in a number of different ways, depending on
the functionality that is required of the callback.  The easiest case
is to simply provide a function to be called, but it is also possible
to include data to pass to the function when it is executed, and even
the object that will be used as the javascript <cite>this</cite> object when the
function is called.</p>
<p>Most functions that take callbacks as arguments accept a <cite>callback
specification</cite> rather than an actual callback object, though you can
use the <code class="xref py py-meth docutils literal"><span class="pre">MathJax.Callback()</span></code> function to convert a callback
specification into a Callback object if needed.</p>
<p>A callback specification is any one of the following:</p>
<blockquote>
<div><dl class="describe">
<dt>
<code class="descname">fn</code></dt>
<dd><p>A function that is to be called when the callback is executed.
No additional data is passed to it (other than what it is
called with at the time the callback is executed), and <cite>this</cite>
will be the window object.</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">[fn]</code></dt>
<dd><p>An array containing a function to be called when the callback
is executed (as above).</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">[fn, data...]</code></dt>
<dd><p>An array containing a function together with data to be passed
to that function when the callback is executed; <cite>this</cite> is still
the window object. For example,</p>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="p">[</span><span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="nx">y</span><span class="p">)</span> <span class="p">{</span><span class="k">return</span> <span class="nx">x</span><span class="o">+</span><span class="nx">y</span><span class="p">},</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
</pre></div>
</div>
<p>would specify a callback that would pass <code class="docutils literal"><span class="pre">2</span></code> and <code class="docutils literal"><span class="pre">3</span></code> to
the given function, and it would return their sum, <code class="docutils literal"><span class="pre">5</span></code>, when
the callback is executed.</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">[object, fn]</code></dt>
<dd><p>An array containing an object to use as <cite>this</cite> and a function to
call for the callback.  For example,</p>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="p">[{</span><span class="nx">x</span><span class="o">:</span><span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="nx">y</span><span class="o">:</span><span class="s1">&#39;bar&#39;</span><span class="p">},</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span><span class="k">this</span><span class="p">.</span><span class="nx">x</span><span class="p">}]</span>
</pre></div>
</div>
<p>would produce a callback that returns the string <code class="docutils literal"><span class="pre">&quot;foo&quot;</span></code>
when it is called.</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">[object, fn, data...]</code></dt>
<dd><p>Similar to the previous case, but with data that is passed to
the function as well.</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">[&quot;method&quot;, object]</code></dt>
<dd><p>Here, <cite>object</cite> is an object that has a method called <cite>method</cite>, and
the callback will execute that method (with the object as
<cite>this</cite>) when it is called.  For example,</p>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="p">[</span><span class="s2">&quot;toString&quot;</span><span class="p">,[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">]]</span>
</pre></div>
</div>
<p>would call the <cite>toString</cite> method on the array <code class="docutils literal"><span class="pre">[1,2,3,4]</span></code> when
the callback is called, returning <code class="docutils literal"><span class="pre">1,2,3,4</span></code>.</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">[&quot;method&quot;, object, data...]</code></dt>
<dd><p>Similar to the previous case, but with data that is passed to
the method. E.g.,</p>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="p">[</span><span class="s2">&quot;slice&quot;</span><span class="p">,[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">],</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">]</span>
</pre></div>
</div>
<p>would perform the equivalent of <code class="docutils literal"><span class="pre">[1,2,3,4].slice(1,3)</span></code>,
which returns the array <code class="docutils literal"><span class="pre">[2,3]</span></code> as a result.</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">{hook: fn, data: [...], object: this}</code></dt>
<dd><p>Here the data for the callback are given in an associative
array of <cite>key:value</cite> pairs.  The value of <cite>hook</cite> is the
function to call, the value of <cite>data</cite> is an array of the
arguments to pass to the function, and the value of <cite>object</cite>
is the object to use as <cite>this</cite> in the function call.  The
specification need not include all three <cite>key:value</cite> pairs; any
that are missing get default values (a function that does
nothing, an empty array, and the window object, respectively).</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">&quot;string&quot;</code></dt>
<dd><p>This specifies a callback where the string is executed via an
<code class="docutils literal"><span class="pre">eval()</span></code> statement.  The code is run in the global context,
so any variables or functions created by the string become
part of the global namespace.  The return value is the value of
the last statement executed in the string.</p>
</dd></dl>

</div></blockquote>
<div class="section" id="executing-a-callback-object">
<h3>Executing a Callback Object<a class="headerlink" href="#executing-a-callback-object" title="Permalink to this headline"></a></h3>
<p>The <cite>Callback</cite> object is itself a function, and calling that function
executes the callback.  You can pass the callback additional
parameters, just as you can any function, and these will be added to
the callback function’s argument list following any data that was
supplied at the time the callback was created.  For example</p>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="nx">y</span><span class="p">)</span> <span class="p">{</span><span class="k">return</span> <span class="nx">x</span> <span class="o">+</span> <span class="s2">&quot; and &quot;</span> <span class="o">+</span><span class="nx">y</span><span class="p">}</span>
<span class="kd">var</span> <span class="nx">cb</span> <span class="o">=</span> <span class="nx">MathJax</span><span class="p">.</span><span class="nx">Callback</span><span class="p">([</span><span class="nx">f</span><span class="p">,</span> <span class="s2">&quot;foo&quot;</span><span class="p">]);</span>
<span class="kd">var</span> <span class="nx">result</span> <span class="o">=</span> <span class="nx">cb</span><span class="p">(</span><span class="s2">&quot;bar&quot;</span><span class="p">);</span>  <span class="c1">// sets result to &quot;foo and bar&quot;</span>
</pre></div>
</div>
<p>Usually, the callback is not executed by the code that creates it (as
it is in the example above), but by some other code that runs at a
later time at the completion of some other activity (say the loading
of a file), or in response to a user action.  For example:</p>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="kd">function</span> <span class="nx">f</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span><span class="nx">alert</span><span class="p">(</span><span class="s2">&quot;x contains &quot;</span><span class="o">+</span><span class="nx">x</span><span class="p">)};</span>
<span class="kd">function</span> <span class="nx">DelayedX</span><span class="p">(</span><span class="nx">time</span><span class="p">)</span> <span class="p">{</span>
    <span class="kd">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="s2">&quot;hi&quot;</span><span class="p">;</span>
    <span class="nx">setTimeout</span><span class="p">(</span><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Callback</span><span class="p">([</span><span class="nx">f</span><span class="p">,</span> <span class="nx">x</span><span class="p">],</span> <span class="nx">time</span><span class="p">));</span>
<span class="p">}</span>
</pre></div>
</div>
<p>The <code class="docutils literal"><span class="pre">DelayedX</span></code> function arranges for the function <code class="docutils literal"><span class="pre">f</span></code> to be called at
a later time, passing it the value of a local variable, <code class="docutils literal"><span class="pre">x</span></code>. Normally,
this would require the use of a closure, but that is not needed when a
<cite>MathJax.Callback</cite> object is used.</p>
</div>
</div>
<div class="section" id="callback-object-properties">
<h2>Callback Object Properties<a class="headerlink" href="#callback-object-properties" title="Permalink to this headline"></a></h2>
<dl class="describe">
<dt>
<code class="descname">hook</code></dt>
<dd><p>The function to be called when the callback is executed.</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">data</code></dt>
<dd><p>An array containing the arguments to pass to the callback
function when it is executed.</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">object</code></dt>
<dd><p>The object to use as <cite>this</cite> during the call to the callback
function.</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">called</code></dt>
<dd><p>Set to <code class="docutils literal"><span class="pre">true</span></code> after the callback has been called, and undefined
otherwise.  A callback will not be executed a second time unless
the callback’s <a class="reference internal" href="#reset" title="reset"><code class="xref py py-meth docutils literal"><span class="pre">reset()</span></code></a> method is called first, or its
<code class="docutils literal"><span class="pre">autoReset</span></code> property is set to <code class="docutils literal"><span class="pre">true</span></code>.</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">autoReset</code></dt>
<dd><p>Set this to <code class="docutils literal"><span class="pre">true</span></code> if you want to be able to call the callback
more than once.  (This is the case for signal listeners, for example).</p>
</dd></dl>

<dl class="describe">
<dt>
<code class="descname">isCallback</code></dt>
<dd><p>Always set to <code class="docutils literal"><span class="pre">true</span></code> (used to detect if an object is a callback
or not).</p>
</dd></dl>

</div>
<div class="section" id="callback-object-methods">
<h2>Callback Object Methods<a class="headerlink" href="#callback-object-methods" title="Permalink to this headline"></a></h2>
<dl class="method">
<dt id="reset">
<code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#reset" title="Permalink to this definition"></a></dt>
<dd><p>Clears the callback’s <cite>called</cite> property.</p>
</dd></dl>

</div>
<div class="section" id="mathjax-callback-methods">
<h2>MathJax.Callback Methods<a class="headerlink" href="#mathjax-callback-methods" title="Permalink to this headline"></a></h2>
<dl class="method">
<dt id="Delay">
<code class="descname">Delay</code><span class="sig-paren">(</span><em>time</em><span class="optional">[</span>, <em>callback</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Delay" title="Permalink to this definition"></a></dt>
<dd><p>Waits for the specified time (given in milliseconds) and then
performs the callback.  It returns the Callback object (or a blank
one if none was supplied).  The returned callback structure has a
<cite>timeout</cite> property set to the result of the <code class="docutils literal"><span class="pre">setTimeout()</span></code> call
that was used to perform the wait so that you can cancel the wait,
if needed.  Thus <code class="xref py py-meth docutils literal"><span class="pre">MathJax.Callback.Delay()</span></code> can be used to
start a timeout delay that executes the callback if an action
doesn’t occur within the given time (and if the action does occur,
the timeout can be canceled).  Since
<code class="xref py py-meth docutils literal"><span class="pre">MathJax.Callback.Delay()</span></code> returns a callback structure, it
can be used in a callback queue to insert a delay between queued
commands.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>time</strong> — the amount of time to wait</li>
<li><strong>callback</strong> — the callback specification</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the callback object</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="Queue">
<code class="descname">Queue</code><span class="sig-paren">(</span><span class="optional">[</span><em>callback</em>, <em>...</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Queue" title="Permalink to this definition"></a></dt>
<dd><p>Creates a <cite>MathJax.CallBack.Queue</cite> object and pushes the given
callbacks into the queue.  See <a class="reference internal" href="../advanced/queues.html#using-queues"><span class="std std-ref">Using Queues</span></a>
for more details about MathJax queues.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>callback</strong> — one or more callback specifications</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the <cite>Queue</cite> object</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="Signal">
<code class="descname">Signal</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="headerlink" href="#Signal" title="Permalink to this definition"></a></dt>
<dd><p>Looks for a named signal, creates it if it doesn’t already exist,
and returns the signal object.  See
<a class="reference internal" href="../advanced/signals.html#using-signals"><span class="std std-ref">Using Signals</span></a> for more details.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>name</strong> — name of the signal to get or create</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the <cite>Signal</cite> object</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="ExecuteHooks">
<code class="descname">ExecuteHooks</code><span class="sig-paren">(</span><em>hooks</em><span class="optional">[</span>, <em>data</em><span class="optional">[</span>, <em>reset</em><span class="optional">]</span><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#ExecuteHooks" title="Permalink to this definition"></a></dt>
<dd><p>Calls each callback in the <cite>hooks</cite> array (or the single hook if it
is not an array), passing it the arguments stored in the data
array.  If <cite>reset</cite> is <code class="docutils literal"><span class="pre">true</span></code>, then the callback’s
<a class="reference internal" href="#reset" title="reset"><code class="xref py py-meth docutils literal"><span class="pre">reset()</span></code></a> method will be called before each hook is
executed.  If any of the hooks returns a <cite>Callback</cite> object, then
it collects those callbacks and returns a new callback that will
execute when all the ones returned by the hooks have been
completed.  Otherwise, <code class="xref py py-meth docutils literal"><span class="pre">MathJax.Callback.ExecuteHooks()</span></code>
returns <code class="docutils literal"><span class="pre">null</span></code>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>hooks</strong> — array of hooks to be called, or a hook</li>
<li><strong>data</strong> — array of arguments to pass to each hook in turn</li>
<li><strong>reset</strong><code class="docutils literal"><span class="pre">true</span></code> if the <a class="reference internal" href="#reset" title="reset"><code class="xref py py-meth docutils literal"><span class="pre">reset()</span></code></a> method should be called</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">callback that waits for all the hooks to complete, or <code class="docutils literal"><span class="pre">null</span></code></p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="Hooks">
<code class="descname">Hooks</code><span class="sig-paren">(</span><em>reset</em><span class="sig-paren">)</span><a class="headerlink" href="#Hooks" title="Permalink to this definition"></a></dt>
<dd><p>Creates a prioritized list of hooks that are called in order based
on their priority (low priority numbers are handled first).  This
is meant to replace <code class="xref py py-meth docutils literal"><span class="pre">MathJax.Callback.ExecuteHooks()</span></code> and is
used internally for signal callbacks, pre- and post-filters, and
other lists of callbacks.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>reset</strong><code class="docutils literal"><span class="pre">true</span></code> if callbacks can be called more than once</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the <cite>Hooks</cite> object</p>
</td>
</tr>
</tbody>
</table>
<p>The list has the following methods:</p>
<dl class="method">
<dt id="Add">
<code class="descname">Add</code><span class="sig-paren">(</span><em>hook</em><span class="optional">[</span>, <em>priority</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Add" title="Permalink to this definition"></a></dt>
<dd><p>Add a callback to the prioritized list.  If <code class="docutils literal"><span class="pre">priority</span></code> is
not provided, the default is 10.  The <code class="docutils literal"><span class="pre">hook</span></code> is a <cite>Callback</cite>
specification as described above.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>hook</strong> — callback specification to add to the list</li>
<li><strong>priority</strong> — priority of the hook in the list (default: 10)</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the callback object being added</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt>
<code class="descname">Remove</code><span class="sig-paren">(</span><em>hook</em><span class="sig-paren">)</span></dt>
<dd><p>Remove a given hook (as returned from <a class="reference internal" href="#Add" title="Add"><code class="xref py py-meth docutils literal"><span class="pre">Add()</span></code></a> above)
from the prioritized list.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>hook</strong> — the callback to be removed</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><code class="docutils literal"><span class="pre">null</span></code></p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="Execute">
<code class="descname">Execute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#Execute" title="Permalink to this definition"></a></dt>
<dd><p>Execute the list of callbacks, resetting them if requested.
If any of the hooks return callbacks, then <code class="docutils literal"><span class="pre">Execute()</span></code>
returns a callback that will be executed when they all have
completed.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">a callback object or <code class="docutils literal"><span class="pre">null</span></code></td>
</tr>
</tbody>
</table>
</dd></dl>

</dd></dl>

</div>
</div>


           </div>
           <div class="articleComments">
            
           </div>
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="queue.html" class="btn btn-neutral float-right" title="The MathJax.Callback.Queue Class" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="html.html" class="btn btn-neutral" title="The MathJax.HTML Object" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2017 The MathJax Consortium.

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'../',
            VERSION:'2.7',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true,
            SOURCELINK_SUFFIX: '.txt'
        };
    </script>
      <script type="text/javascript" src="../_static/jquery.js"></script>
      <script type="text/javascript" src="../_static/underscore.js"></script>
      <script type="text/javascript" src="../_static/doctools.js"></script>

  

  
  
    <script type="text/javascript" src="../_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>