变量在可以使用之前无效;代码似乎无法运行

时间:2016-01-27 22:11:10

标签: javascript

当我在私有方法_callback中将私有变量null设置为_success时,行_callback(result, _secondaryCallback);_callback(result)不会执行,因为{ 后续_callback已使{1}}无效。无论它是否真的准确地说出来,似乎代码运行失灵。这是使用Phonegap>的iOS。

这里发生了什么?为什么我无法调用_callback = _secondaryCallback = null;然后将_callback()设置为空?为什么_callback过早无效?

F.Y.I。,这可能不是处理回调等的最佳策略,但我真的只对了解这种行为的原因感兴趣。

_callback

2 个答案:

答案 0 :(得分:1)

难以100%确定,因为这不是显示问题的完整示例。

我的猜测是,你多次拨打something并且你没有考虑所有这些电话都在共享相同的变量 _callback和{{ 1}}。

因此,在一次调用完成后,所有其他待处理调用将在结果到达后将变量设置为_secondaryCallback

答案 1 :(得分:0)

按照你所展示的内容,你可能多次调用dict = location.raw osmid = dict.get('osm_id', 'default_value_if_null_here') 并为每次回调使用相同的2个变量。完成namespace.something函数一次后,对于排队的_success回调,将2个变量设置为null。您可以通过函数参数传递_success_callback来解决您的问题。