【发布时间】:2013-09-27 02:39:19
【问题描述】:
var IAP_loaded = false; // Global Scope
var IAP_onReady = function(){
storekit.load(IAP_list, function (products, invalidIds) {
IAP_loaded = true;
console.log("1] -- IAP Loaded: "+IAP_loaded); // Outputs true
});
console.log("2] -- IAP Loaded: "+IAP_loaded); // Outputs false
IAP_loaded = true;
console.log("3] -- IAP Loaded: "+IAP_loaded); // Outputs true
};
console.log("4] -- IAP Loaded: "+IAP_loaded); // Outputs false
对于某些我的全局变量并没有在函数本身之外进行修改... 我创建了一个完全独立的函数并更改了一个全局变量,它工作正常。这只是头脑让我感到困惑。有什么想法吗?
附言。这是一个 Phonegap 3.0 项目,回调函数来自 IAP 插件。在这里找到https://github.com/j3k0/PhoneGap-InAppPurchase-iOS
storekit.load 是异步的!感谢您缩小范围。
2] -- IAP Loaded: false
3] -- IAP Loaded: true
4] -- IAP Loaded: false
1] -- IAP Loaded: true
我按此顺序收到回复。但它不是阿贾克斯。它通过Objective C,javascript只处理响应,因此可以通过javascript进行编辑
【问题讨论】:
-
如果
storekit.load是 AJAX 调用,请参见此处 stackoverflow.com/questions/14220321/… -
storekit.load 是异步的!感谢您缩小范围。
2] -- IAP Loaded: false 3] -- IAP Loaded: true 4] -- IAP Loaded: false 1] -- IAP Loaded: true我按此顺序收到回复。但它不是阿贾克斯。它通过Objective C,javascript只处理响应,因此可以通过javascript编辑 -
对,但同样的概念也适用。了解解决方案,而不是语言。
-
IAP_onReady 在哪里被调用?看起来这段代码在调用它之后运行,在这种情况下,您将再次将
IAP_loaded设置为false,您看到的输出将是正确的。 -
使用
"use strict",你会抛出错误,这将帮助你确定如何解决你的问题。
标签: javascript function cordova callback global-variables