我想做以下事情:
dataservice.doThis(folderIds).then(doThat(setIds));
doThis
和doThat
不返回任何内容。我正在阅读延期和承诺,但未能实现这一点。如果doThat
中的所有内容都已完成,我怎么能告诉doThis
不要运行?
答案 0 :(得分:0)
如果您打算使用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);