我在coffeescript中有以下代码
getSection = (url) -> req = $.getJSON url return req.success (data) -> data.section
要么,
getSection = (url) -> req = $.getJSON url req.success (data) -> data.section
我打算返回函数getSection
。 但它总是返回另一个对象(可能是response / ajax对象)。 如何强制从这个内部函数返回data.section中的值?
提前致谢?
$.getJSON
是一个AJAX调用, A代表异步,因此getSection
将在$.getJSON
从服务器返回响应之前返回。 基本上,你不能让getSection
返回data.section
除非你想用$.ajax
替换$.getJSON
并进行同步(即非异步)调用; 但是,同步调用是邪恶的,并且已被弃用,因此您不应使用它们。
通常的解决方案是将回调传递给getSection
:
getSection = (url, callback) -> req = $.getJSON url req.success (data) -> callback(data.section)
然后你把你的逻辑放在callback
而不是试图用getSection
返回值做一些事情。
你的getSection
正在返回req
因为这是req.success
返回的内容,而CoffeeScript函数返回它们的最终值。
以上就是jQuery教程分享coffeescript总是返回响应对象相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/547257.html