通知ViewModel模型完成?

时间:2016-01-20 19:45:58

标签: javascript knockout.js

我在javascript / knockout中有一个fileupload实用程序。在我的viewmodel中,我在模型.upload()上调用一个异步xhr类型请求的函数。我想知道viewModel是什么时候所有xhr请求都完成了:

this.upload = function () {
    var self = this;
    for (var i = 0; i < self.files().length; i++) {
        self.files()[i].upload();
    }

    this.uploadComplete(true);
};  

this.uploadComplete(true);当然不起作用,因为调用是异步的。从模型回传到上传完成的视图模型的正确方法是什么(注意可以有多个文件)。

1 个答案:

答案 0 :(得分:2)

文件'upload方法返回Promise(或类似名称)。您可以在数组中收集它们,然后

Promise.all(arrayOfPromises).then(function () {
    self.uploadComplete(true);
});