gpt4 book ai didi

node.js - 在继续主函数之前如何获取回调函数的结果?

转载 作者:太空宇宙 更新时间:2023-11-04 02:41:02 27 4
gpt4 key购买 nike

我使用递归函数构建包含(URL、子项、数据)的 JSON 数据。我将此数据发送到我的图表(RGraph 库)以便创建它。问题是在我的函数 creer_json = (url, nom, recursif, recursif_max) 中我遇到了问题。代码如下:

creer_json = (url, nom, recursif, recursif_max) ->
recursif--
resultat = {}
@tab = []
tableau = getBody(url,(error,message) ->
@tab = getTab(message.body))
tab_children = []
tab_relation = []
indice = 0
id_enfant = 1
adresse = "<h1>Liens de "+url+"</h1>"
while indice < tab.length
if (recursif == recursif_max-1)
id_urlfils = id_enfant
else
id_urlfils = nom+"."+id_enfant
adresse = adresse+" "+"<li>"+id_urlfils+" : "+"<a href="+tab[indice]+">"+tab[indice]+"</a></li>"
indice++
id_enfant++
tab_relation.push("<ul>"+adresse+"</ul>")
id_url = 1
i = 0
while i < tab.length
if (recursif == recursif_max-1)
id_urlfils = id_url
else
id_urlfils = nom+"."+id_url
if recursif >= 0
json2 = creer_json(tab[i], id_urlfils, recursif, recursif_max)
tab_children.push(json2)
i++
id_url++
resultat =
id : nom
name : nom
children : tab_children
data : { relation: tab_relation }
return resultat

我的问题是我需要第四条指令的结果才能继续主要功能:

tableau = getBody(url,(error,message) ->
@tab = getTab(message.body))

@tab 包含网站的所有 URL,我必须循环它们才能构建 JSON 数据。main 函数在没有 @tab 结果的情况下继续,我需要该数据!我的问题可能不太清楚,所以如果您不明白,请随时问我。提前感谢您抽出时间。

最佳答案

正如 Eru 所写:如果您需要异步调用的结果,则必须在回调中继续。您无法重新同步异步调用。这也意味着您无法从 creer_json 返回任何有用的内容。相反,如果您需要返回值,则必须添加一个回调参数来获取传递的返回值。更重要的是,由于 creer_json 将成为一个异步函数并且您递归地调用它,因此这些递归调用需要带有回调。

关于node.js - 在继续主函数之前如何获取回调函数的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15720352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com