H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【Web前端问题】javascript 函数间传值问题?

问题:a函数内部发起的ajax请求会得到一个code,那么作为b函数如何取到a函数的返回值(code)呢?b函数事由其他事件触发的。

回答:

这个问题早该结题了。实现方式常见无非就3种:

  1. 使用传统的回调函数callback方式
  2. 使用Promise
  3. 使用事件机制 trigger on

其他人提到的RxJs我不熟悉,粗看一下,类Promise,能很好实现异步编程同步化。

回答:

var ajaxCode;
function a() {
    ajax({
        success: function(data){
            ajaxCode = data.code;
        }
    })
}

function b(){
    console.log(ajaxCode);
}

$('button').trigger('EventName',b);

回答:

function a( callBack ){
    $.ajax({ 
        url: "xxxxxxx",  
        success: function(data){
           if(data){
               return callBack&& callBack(data)
           }
        }
    })
}

function b(){
    a(function(data){
        //b想处理的事
    })
}

这么做可以保证b事件触发时候,得到的a的值是同步的。不会出现a的值还没得到,就要执行b想要做的事。

回答:

用 promise 吧

function a(){
  return ajax({...})
}

function b(){
  a().then(res=>{
    // res 就为请求返回的数据
  })
}

回答:

二楼写没问题,一楼的只能用于同步,否则要出问题的

回答:

用rxjs吧

回答:

rxjs很适合这样的场景,了解一下

本文地址:H5W3 » 【Web前端问题】javascript 函数间传值问题?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址