使用JQuery.Deferred时可以直接调用reject()吗?没有调用异步函数?
也许我想在异步函数的开头进行某种测试.如果测试失败,我想立即拒绝.请参阅下面的第一个if块.
function doSomethingAsync() {
//Test if the ajax call should be invoked
var testFailed = true;
var dfd = $.Deferred();
//Check if test failed
if (testFailed) {
var asyncResult = {
success: false,
data: 'test failed'
};
//Is this OK usage of reject on the same thread?
dfd.reject(asyncResult);
return dfd.promise();
}
$.get('/api/testapi/get').done(function (data) {
var asyncResult = {
success: true,
data: data
};
dfd.resolve(asyncResult);
}).fail(function (err) {
var asyncResult = {
success: false,
data: err
};
dfd.reject(asyncResult);
});
return …Run Code Online (Sandbox Code Playgroud)