我一直在阅读很多关于JQuery's
deferred
对象的内容。我可以看到解耦代码是如何工作的。我最初是使用 Async.js 编写的,但建议使用 Promise。
我发现的大多数示例只是将事物链接到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);
我的管道方法似乎也被首先调用:s