我一直在阅读了很多关于JQuery's
deferred
对象。 我可以看到它是如何工作去耦合码。 我写了使用Async.js这orignally,但会被建议使用的承诺。
我发现大多数例子都是连锁的事情AJAX
调用。 我想链的异步功能,但无法弄清楚如何做到这一点。 我从数据库中检索的时间,然后使用时间为参数的URL,最后我会那么喜欢做一个AJAX
调用。
这是我在哪里:
var fetch = function (contactId, callback, errorCallback)
{
var buildPromise = new $.Deferred();
var getLastImportTime = function ()
{
var querySuccess = function (tx, result)
{
buildPromise.resolve("7 oclock");
};
var queryError = function (tx, e)
{
buildPromise.reject("Error querying database");
};
database.open();
database.query("SELECT EventImportTime FROM Contact WHERE Contact.Id = ?", [contactId], querySuccess, queryError);
};
var buildUrl = function (lastImportTime)
{
console.log("I do happen");
var url = "http://";
url += 'MobileGetChangedEvents.aspx?Reference=';
url += '&LastImportTime=';
url += lastImportTime;
url += '&Format=JSON';
return url;
};
var makeRequest = function (url)
{
getJSON(url, callback, errorCallback)
};
$.when(getLastImportTime()).pipe(buildUrl).then(makeRequest);
也是我管的方法似乎是第一个叫:■