我有一些JavaScript:

surveyBusy.show();

$.getJSON(apiUrl + '/' + id)
    .done(function (data) {
        ...
        surveyBusy.hide();
    })
    .fail(function (jqXHR, textStatus, err) {
        ...
        surveyBusy.hide();
    });

但是,我只想在surveyBusy.show();花费的时间超过$.getJSON毫秒数的情况下发出n。否则,您会忽悠。 getJSON api上是否有可以执行此操作的回调?我看到nothing in the documentation

最佳答案

只需使用超时即可。另外,我将您的“隐藏”代码放在always处理程序中,以减少代码重复。

var busyTimeout = setTimeout(function() { surveyBusy.show(); }, 2000);

$.getJSON(apiUrl + '/' + id)
    .done(function (data) {
        ...
    })
    .fail(function (jqXHR, textStatus, err) {
        ...
    })
    .always(function() {
        clearTimeout(busyTimeout);
        surveyBusy.hide();
    });

10-06 12:11