0
我想這樣做如下:如何使用延遲與基本的JavaScript功能?
dataservice.doThis(folderIds).then(doThat(setIds));
凡doThis
和doThat
不返回任何東西。我正在閱讀延期和承諾,但一直未能得到這個工作。我如何才能告訴doThat
在doThis
中的所有內容都已完成之前不會運行?
我想這樣做如下:如何使用延遲與基本的JavaScript功能?
dataservice.doThis(folderIds).then(doThat(setIds));
凡doThis
和doThat
不返回任何東西。我正在閱讀延期和承諾,但一直未能得到這個工作。我如何才能告訴doThat
在doThis
中的所有內容都已完成之前不會運行?
如果您打算使用then
,您需要某種承諾系統(即使這意味着需要自己重新實施)。你不能做到這一點無需doThis
回報承諾,但是,(它真的需要決心,承諾以及與ID,您就需要):
var dataservice = {
doThis: function doThis(folderIds) {
var future = new PromiseAPlusCompliantPromise();
makeXHR("/some/endpoint", // endpoint
{folderIds: folderIds}, // data to send
function sucess(setIds) { // success handler
future.resolve(setIds);
});
return future; // Note that we do have to return a promise here
}
};
function doThat(setIds) {
// Do whatever here
// No need to return anything
}
dataservice.doThis([1, 2, 3]).then(doThat);
您是否嘗試過實際使用' $ .Deferred'? http://learn.jquery.com/code-organization/deferreds/ –