1

エラー(「タイムアウト」など)が発生するとエラーがスローされるはずの関数があり、プロミスチェーンの最後でキャッチします。

var createOrder = function (id) {
    Utility.toggleProgressBar();
    return $.ajax({
        url: 'http://' + AppVar.ServerUrlWithPort + '/restapi/CreateOrder',
        data: JSON.stringify({
            'SessionId': AppVar.SessionId,
            'Idrmtreq': id
        }),
    }).then(function (response) {
        if (response.ResultCode === '0') {
            return response;
        } else {
            throw new Error($.i18n('Error-RetrivingDataProblem'));
        }
    }).fail(function (x, t, m) {
        if (t === "timeout") {
            throw new Error($.i18n('Error-Timeout')); //code reaches here, where Chrome debugger says that this error was left Uncaught
            //for the record, I checked whether the translation function could be the problem and it doesn't work even when I do 'throw "timeout";'
        } else {
            throw new Error($.i18n('Error-ConnError'))
        }
    }).catch(function (error) {
        //error == {"readyState":0,"status":0,"statusText":"timeout"}
        ErrorManager.displayError(error);
        return;
    }).always(function () {
        Utility.toggleProgressBar();
    })
}

具体的には、タイムアウトの問題が発生しています。コードがスローに到達。私が投げたスローは実際にはUncaughtのままですが、何かがスローされます. Catch は、こ​​の Object を含むエラーをキャッチします{"readyState":0,"status":0,"statusText":"timeout"}

理解できない。なに投げてるの?

4

1 に答える 1