完成异步功能后如何捕获(网络套件条目,文件上传)



我使用函数webkitgetasentry上传文件(包括文件夹((拖放使用(

下面是我的代码

function drop(e){
    e.stopPropagation();
    e.preventDefault();
    //call start modal (waiting file uploading...)
    var items = e.dataTransfer.items;
    for(var i=0; i<items.length; i++){
        var item = items[i].webkitGetAsEntry();
        if (item){
            callmyfunction(item);
        }
    }
    //start modal close
}

调用我的函数做文件上传。

但是此代码异步运行。

所以在调用MyFunction全部完成之前开始模态关闭

当调用我的函数全部完成时,如何启动模式关闭?

callmyfunction 异步函数应接受回调参数,以便您可以在那里处理模式关闭。例:

function callmyfunction(item, cb) {
    // do uploading...
    // execute cb after upload
    cb();
}
function drop(e){
    e.stopPropagation();
    e.preventDefault();
    //call start modal (waiting file uploading...)
    var items = e.dataTransfer.items;
    for(var i=0; i<items.length; i++){
        var item = items[i].webkitGetAsEntry();
        if (item){
            callmyfunction(item, function() { 
              // close modal
            });
        }
    }
}

另一种选择是使用承诺。

相关内容

最新更新