可能重复:
不确定变量未定义的原因。可能的范围问题?
我很抱歉这个糟糕的标题,但我只是不知道还能怎么称呼它。我希望我的破解代码能够提供足够的信息。(请随意大笑并指着我,但不要忘记在你做的时候提供一些建设性的东西。)
第 24、27、31 和 43 行是我的问题所在。第 27 行包含我期望的数据(第 26 行显示我期望的数据)。但是,我试图在第 24 行将该信息返回给 fetchResults,这显然不会发生:fetchResults 是空的。
我相信这是因为第 27 行将结果返回给第 24 行的匿名函数,但从那里它无处可去。
第 43 行是我计划使用结果的地方。(是的,我手动添加了行号。)
1 $(document).ready(function() {
2
3 // Fetch XML generic fetch format
4 function genericFetch(entityType, fieldA, fieldB, valueX)
5 {
6 function onFetchError(xhr, status, errorThrown)
7 {
8 var errormsg = $(xhr.responseXML).find('Message').text();
9
10 alert('CrmFetchKit-Error occured: ' + errormsg);
11 }
12
13 var fetchxml = ['<fetch version="1.0" output-format="xml-platform" mapping="logical">',
14 ' <entity name="' + entityType + '">',
15 ' <attribute name="' + fieldA + '" />',
16 ' <attribute name="' + fieldB + '" />',
17 ' <filter type="and">',
18 ' <condition attribute="' + fieldA + '" operator="eq" value="' + valueX + '" />',
19 ' </filter>',
20 ' </entity>',
21 '</fetch>'].join('');
22
23 // Action: load the account with a certain name
24 var fetchResults = CrmFetchKit.Fetch(fetchxml).then(function (results) {
25 /* success handler */
26 alert("results: " + JSON.stringify(results, null, 4));
27 return results;
28 }, onFetchError);
29
30 alert("fetchResults: " + JSON.stringify(fetchResults, null, 4));
31 return fetchResults;
32 }
33
34
35 $('#ati_ittestingbutton2').click(function(){
36 var entityType = "product";
37 var fieldA = "productnumber";
38 var fieldB = "name";
39 var valueX = "SL64030";
40
41 var fetchResults = genericFetch(entityType, fieldA, fieldB, valueX);
42
43 alert("JSON: " + JSON.stringify(fetchResults, null, 4));
44 alert("fetchRes: " + fetchResults[0]['attributes']['productnumber']['value']);
45 });
46 });