【发布时间】:2012-03-06 13:53:07
【问题描述】:
在我的代码中,我需要调用一个对象方法,从其回调中检索数据,并将其传递给另一个方法或函数。
someObject.getSomeData({option1:'value1', option2:'value2'},
function(data) {
doAwesomeStuff(data);
}
);
但是,回调无法识别其范围之外的任何函数/对象/变量。
我现在尝试做的是将所有内容包装在一个函数周围。
var myData = '';
(function(myData) {
someObject.getSomeData({option1:'value1', option2:'value2'},
function(data) {
myData = data;
}
);
});
doAwesomeStuff(myData);
但这也不起作用。
有人知道如何正确地完成这个吗?
【问题讨论】:
-
您所说的“超出其范围”指的是哪些变量?
-
> 但是,回调不能识别任何超出其范围的 > 函数/对象/变量。这听起来有点奇怪...... doAwesomeStuff() 定义在哪里?如果它在您的调用所在的范围内(或更广泛的范围内),则它必须是可访问的。
-
它实际上已经定义并执行了,但这是在 nodejs 中,它正在做一些数据处理,虽然我有一个 console.out 语句来验证它是否被执行,但它似乎在其他中丢失了输出。好像我急着发这个问题,我是在学校做的,我一回到家就想通了,重新审视了一下。谢谢大家的帮助,我会把它标记为删除之类的:)
标签: javascript asynchronous callback