0

次のようなことをしたいと思います。

dataservice.doThis(folderIds).then(doThat(setIds));

どこdoThisdoThat何も返さないでください。Deferred と promises を読んでいますが、これを機能させることができませんでした。すべてが完了 doThatするまで実行しないようにするにはどうすればよいですか?doThis

4

1 に答える 1

0

を使用する場合はthen、ある種の約束システムが必要になります (それが自分で再実装することを意味する場合でも)。ただし、Promiseを返さないと実行できません (必要IDを使用して、その Promise も解決する必要があります)。doThis

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);
于 2013-07-23T02:23:06.677 に答える