我有一个函数,它从7个不同的URL读取XML提要,然后添加到JSON对象中。我需要知道函数的执行何时完成,然后我需要将Json feed发送到另一个函数。
simpleAJAXLib.init();
这是读取所有xmls并将其放入Json对象jsonStr2
的函数,我需要将此Json对象传递给另一个方法。
passtoSecMethod(jsonStr2);
我正在尝试承诺,但仍然是同样的问题。
$(document).ready(function() {
d = new $.Deferred();
myfunction();
function myfunction() {
promise = longfunctionfirst().then(shortfunctionsecond);
}
function shortfunctionsecond() {
alert("second function finished");
return d.promise()
}
function longfunctionfirst() {
var URLCollection = [
"http://news_national_3354.xml",
"http://news_theworld_3356.xml",
"http://news_sport_3168.xml",
"http://news_ent_3169.xml",
"http:///news_lifestyle_3171.xml",
"http://news_travel_3325.xml",
"http://news_money_505.xml",
"http://news_tech_506.xml"
];
for (var i = 0; i < URLCollection.length; i++) {
simpleAJAXLib.init(URLCollection[i]);
}
d.resolve();
return d.promise();
}
});
警告应在longfunctionfirst完成时打印,但在函数启动时立即打印