我想从嵌套回调中返回值。以下是伪代码:
dataSetFinal = function1()
within function1
database is queried to get dataSet1
call function2, using dataSet1 as arguments
within function2
query database to get dataSet2
return dataSet2
return dataSet2
这是我试图让它发挥作用
dataSetFinal = function1("arg1", function(err, rows){
client.query(sql1, function(err,rows){
function2(rows[0].userId, function(err, rows){
client.query(sql2, function(err, rows){
return rows;
});
});
});
});
但我无法弄清楚如何让function1返回function2' s" rows"。
答案 0 :(得分:3)
你不能,并且在一定程度上,你不能。从理论上讲,您可以将值或引用传递给上层上下文并将其返回,但只有当两者之间的每个进程完全同步时才会起作用。
那该怎么办?回调是解决方案。您可以将另一个函数传递给外部方法,并使用所需的值调用该函数,而不是中继返回值。