Javascript 异步调用中的信息流

Javascript 异步调用中的信息流,javascript,node.js,mathjax,Javascript,Node.js,Mathjax,这个问题是一个后续问题 [我是否应该在此处明确复制内容?] 请注意,这是我第一次学习异步代码流 我还阅读了JavaScript中的“承诺” 我想我理解了,至少部分地理解了这个想法。简而言之,我需要在传递给typeset的回调函数中放入我需要处理的data.mml 现在,我有点被困在如何组织流程中。这是我总体上需要做的事情(我在前面的问题中没有补充): 比如说,我有一根绳子 var input = 'First $a^2=b$ second $a+b+c=d$ last'; 我要分了 var s

这个问题是一个后续问题

[我是否应该在此处明确复制内容?]

请注意,这是我第一次学习异步代码流

我还阅读了JavaScript中的“承诺”

我想我理解了,至少部分地理解了这个想法。简而言之,我需要在传递给
typeset
的回调函数中放入我需要处理的
data.mml

现在,我有点被困在如何组织流程中。这是我总体上需要做的事情(我在前面的问题中没有补充):

比如说,我有一根绳子

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
。在某个时间点,排版将生成相应的MathML。我们把它叫做
数据
。根据我从链接答案中得到的想法,我需要将我需要对
数据执行的操作
放在回调函数中。我需要做的是将其插入
拆分的
第二个元素。在插入之前有一些额外的处理,但是为了清楚起见,让我们跳过它。所以,只是插入部分。当处理
a+b+c=d
时,它将是拆分的第四个元素

我的问题是,第二元素和第四元素似乎是
排版
之外的信息。那么,回调函数如何知道这次输入的
数据是与
a^2=b
相对应的数据,而不是与
a+b+c=d
相对应的数据呢


啊!!也许这与我无法控制应该传递给
typeset
的回调函数的签名有关。据我所知,该函数只有一个输入,即
数据
,其中包含MathML

也许你需要:@phenxd让我看看。听起来很像。@phenxd是的,这部分解决了问题。通过在与额外变量相同的范围内定义匿名回调函数,我可以在回调函数内访问后者,并有效地从回调函数中检索输出。这并不是我的问题的终点,因为我仍然需要弄清楚如何异步循环通过
splitted
的元素。目前,这种转变正在发挥作用,而且正在逐步实现。但是循环直到循环结束才分配它们。但这是另一个问题。谢谢