繁体   English   中英

对异步函数进行回调

[英]make callback for asynchronous function

我可以编写一个回调函数,该函数将停止执行一个脚本,直到完成另一个脚本为止。 我在这里找到的。

dosomething(4, function () {
    console.log("finished loop");
});


function dosomething(delay, callback) {

    for (var i = 0; i < 100; i++) {
        $("body").append(i + "<br>");
    }
    alert("done");
    if (typeof callback == "function") callback();

}

小提琴

但是,这不适用于异步功能。 我认为这就是原因。

doAjax(4, function () {
    console.log("finished ajax");
});

function doAjax(delay, callback) {
    $.ajax({
        type: "post",
        url: "/echo/html/",
        data: {
            html: "some content",
            delay: 4
        },
        dataType: 'html',
        success: function () {
            console.log("ajax done");
        }
    });

    if (typeof callback == "function") callback();
}

小提琴

我知道问如何为异步请求合并我自己的回调有点愚蠢,因为jQuery内置了它们,而我只是使用了一个,但是我想知道如何实现。 它与编写整个Promise库一样复杂吗?

请求完成后,您不会再调用回调。


...
//HERE!
success: function(data){
  if (typeof callback == "function") callback(null, data);
},
error: callback
...
//NOT BELOW

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM