我有createUserData()
功能:
createUserData(user) {
const dfd = new $.Deferred();
$.ajax({
url: './awesome/user',
type: 'POST',
dataType: 'json',
data: user,
})
.then((response) => {
dfd.resolve(response);
})
.fail((xhr) => {
// do stuff with errors
dfd.reject(errorMsg);
});
return dfd.promise;
}
我希望能够在任何地方召唤它......
createUserData(user).then((response) => {
// do more stuff with that response
// fire off other functions
// But I can't get here...
});
我得到createUserData(...).then() is not a function
。我使用承诺错了吗?我不明白,我在我的功能中回复了承诺。我做错了什么?
答案 0 :(得分:1)
您需要调用promise方法:
return dfd.promise();
答案 1 :(得分:0)
你可以直接返回$ .ajax并使用.done()和.fail()连接它。
在您的代码中,问题应该是
return dfd.promise();