2016-03-11 71 views
0

當調用一個宏我具有響應以下錯誤:[zetapush]錯誤在宏:代碼= SUB_ASSIGN - 消息=分配失敗

代碼= SUB_ASSIGN

消息=分配失敗

位置=減少在文件的65線mymacro.zms

線65

/** Reduce */ 
var b = gda(GDA).reduce { 
    table: 'myTable', 
    start: __parameters.key + '##', 
    stop: __parameters.key + '##a', 
    page: { 
     pageNumber: 0, 
     pageSize: 100000000 
    }, 
    initialValue: { 
     tR: tR, 
     count: 0  
    }, 
    'columns': ['col1', 'col2'], 
    'function': usr:myfunc 
}; 

在Android SDK(不在JS SDK上)上看到並且不是100%可重現的。

這個錯誤是什麼意思,我該如何糾正它?

謝謝。

回答

2

SUB_ASSIGN的(文檔記錄不完整)含義是帶有類似a.b.c = d;等語法的分配失敗。 更準確地說,左邊的操作數是由幾個分層的子部分組成的(在我的例子中是a,b和c)。 請注意,SUB_ASSIGN報告了一個編程錯誤,您應該警惕: 分配a.b.c時,至少a.b必須存在且不爲空。 A碼圖案像這樣的應達到目的:

// the ?? operator returns true when an expression is defined and not null 
if (! a.b ??) { 
    a.b = {}; 
} 
... 
a.b.c = 0; 

,或者更短,如果適用的話:

if (! a.b ??) { 
    a.b = {c:0}; 
} 

對於有關文件 '?'在the official API reference documentation

發現當你的代碼不包括這樣的聲明,無論如何,我想,真正的錯誤不在於你減少通話,但你的回調函數內(USR:MYFUNC)。

此外,爲了便於進一步調試: 您給出的錯誤報告似乎沒有包含完整的堆棧跟蹤,直到「reduce」調用的回調。這很可能是zetapush API的缺失/尚未實現的功能(您可以請求...)。

相關問題