Javascript 咖啡脚本与Jquery Post的承诺
我有一个emberjs控制器负责向我的服务器发送用户注册表。这在大多数情况下都很好,但我正试图利用承诺,这样我就可以做一些错误检查、重定向等Javascript 咖啡脚本与Jquery Post的承诺,javascript,jquery,ember.js,promise,Javascript,Jquery,Ember.js,Promise,我有一个emberjs控制器负责向我的服务器发送用户注册表。这在大多数情况下都很好,但我正试图利用承诺,这样我就可以做一些错误检查、重定向等 sendRegistration: () -> $.post('/api/v1/users', user: email: @email, password: @password, password_confirmation: @passwordConfirmation ).then (resp
sendRegistration: () ->
$.post('/api/v1/users',
user:
email: @email,
password: @password,
password_confirmation: @passwordConfirmation
).then (response) ->
alert('Hi!')
这或多或少是正确的,因为post被发送到服务器,服务器用适当的状态代码进行响应,但随后不会执行,可能是因为返回了post的结果。我的咖啡脚本有什么遗漏吗?只需使用
.post
回调:
sendRegistration: () ->
$.post('/api/v1/users',
user:
email: @email,
password: @password,
password_confirmation: @passwordConfirmation
, (response) ->
alert('Hi!')
);
我想,要使用jQuery的延迟对象,您应该像这样定义post请求:
sendRegistration: () ->
$.post('/api/v1/users',
user: '',
email: @email,
password: @password,
password_confirmation: @passwordConfirmation
)
.done (response) ->
alert('Hi!')
.fail (jqHXR, textStatus) ->
alert('error')
秘书处的说明:
从jquery1.5开始,fail和done以及从jquery1.6开始的always回调挂钩都是先进先出的托管队列,允许每个挂钩有多个回调。看
希望有帮助。尝试添加错误处理程序。其中一个肯定会被执行。顺便说一句,您应该向回调中添加
返回响应
,否则该方法将返回未定义
的承诺,您可以使用它检查coffeescript Syntax或将javascript转换为coffeescript。相同的结果。反应回来了,警觉再也没有了triggers@DVG然后,jQuery并不认为请求/响应是“成功的”。如上所述,添加一个参数(参数与:函数匹配(jqXHR,status,error)
)。