如何运用Jquery的Deferred对象实现高级应用并举例说明?
- 内容介绍
- 文章标签
- 相关推荐
本文共计905个文字,预计阅读时间需要4分钟。
在实际开发中,经常会遇到这类问题:函数B中需要用到的变量或参数,只有等A函数执行完成后才能获取到。例如,A函数中有一个ajax请求,而B函数中需要的position变量需要在A函数执行完成后才能获取。
在实际开发中常常遇到这样的问题:B函数中需要用到的变量或者参数,只有等A函数执行完毕了才能获取到。比如A函数中有一个ajax请求,而B函数中所需要的position变量需要在A函数中ajax请求完成才能得到它的准确值。
function A() { $.ajax({ url: '/api/test', type: 'POST', data: {...}, success: function(res) { position = res.position; } }) } function B() { $('.test').text(position); }
JavaScript的异步模式让B函数不会等待A函数计算出了position的值才会执行,它会不等待A函数的结果而直接开始执行,这样就会造成position无法正确赋值。
本文共计905个文字,预计阅读时间需要4分钟。
在实际开发中,经常会遇到这类问题:函数B中需要用到的变量或参数,只有等A函数执行完成后才能获取到。例如,A函数中有一个ajax请求,而B函数中需要的position变量需要在A函数执行完成后才能获取。
在实际开发中常常遇到这样的问题:B函数中需要用到的变量或者参数,只有等A函数执行完毕了才能获取到。比如A函数中有一个ajax请求,而B函数中所需要的position变量需要在A函数中ajax请求完成才能得到它的准确值。
function A() { $.ajax({ url: '/api/test', type: 'POST', data: {...}, success: function(res) { position = res.position; } }) } function B() { $('.test').text(position); }
JavaScript的异步模式让B函数不会等待A函数计算出了position的值才会执行,它会不等待A函数的结果而直接开始执行,这样就会造成position无法正确赋值。

