这个问题是this other question的后续问题。
[我应该在这里明确地复制内容吗?]
请注意,这是我第一次了解异步代码流的事实。
我还读到了有关“承诺”的信息。在JavaScript中。
我想我至少部分地理解了answer中的想法。在非常短的时间内,我需要将data.mml
所需的内容放在传递给typeset
的回调函数中。
现在,我对如何组织流程感到有些困惑。这是我需要做的整体(我在上一个问题中没有添加):
我有一个字符串,比如说
var input = 'First $a^2=b$ second $a+b+c=d$ last';
我会分开它
var splitted = input.split('$');
所以我们应该
splitted = ['First ', 'a^2=b', ' second ', 'a+b+c=d', ' last'];
然后splitted
的奇数元素是typeset
需要转换为MathML的元素。
假设我们即将处理第一个奇数元素a^2=b
。在某个时间点typeset
将生成相应的MathML。让我们称之为data
。根据我从链接的答案得到的想法,我需要在回调函数中放置我需要做的data
。我需要做的是将其作为splitted
的第二个元素插入。在插入之前有一些额外的处理,但为了清楚起见,我们跳过它。所以,只是插入部分。处理a+b+c=d
时,它将是分裂的第四个元素。
我的问题是,第二个元素和第四个元素似乎是typeset
外部的信息。那么,回调函数如何知道此次输入的data
是与a^2=b
相对应的a+b+c=d
而不是typeset
。
啊!也许与我无法控制应该传递给data
的回调函数的签名这一事实相关。据我所知,该函数有一个包含MathML的"NY"
输入。