鍍金池/ 問答/Java  HTML/ javascript 函數(shù)間傳值問題?

javascript 函數(shù)間傳值問題?

問題:a函數(shù)內(nèi)部發(fā)起的ajax請(qǐng)求會(huì)得到一個(gè)code,那么作為b函數(shù)如何取到a函數(shù)的返回值(code)呢?b函數(shù)事由其他事件觸發(fā)的。

回答
編輯回答
尐飯團(tuán)

rxjs很適合這樣的場(chǎng)景,了解一下

2018年8月29日 05:55
編輯回答
絯孑氣

二樓寫沒問題,一樓的只能用于同步,否則要出問題的

2017年4月23日 21:10
編輯回答
萢萢糖

用 promise 吧

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

function b(){
  a().then(res=>{
    // res 就為請(qǐng)求返回的數(shù)據(jù)
  })
}
2018年4月13日 12:53
編輯回答
蝶戀花

用rxjs吧

2017年11月19日 20:00
編輯回答
獨(dú)白

這個(gè)問題早該結(jié)題了。實(shí)現(xiàn)方式常見無非就3種:

  1. 使用傳統(tǒng)的回調(diào)函數(shù)callback方式
  2. 使用Promise
  3. 使用事件機(jī)制 trigger on

其他人提到的RxJs我不熟悉,粗看一下,類Promise,能很好實(shí)現(xiàn)異步編程同步化。

2018年9月13日 10:12
編輯回答
懶豬
function a( callBack ){
    $.ajax({ 
        url: "xxxxxxx",  
        success: function(data){
           if(data){
               return callBack&& callBack(data)
           }
        }
    })
}

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

這么做可以保證b事件觸發(fā)時(shí)候,得到的a的值是同步的。不會(huì)出現(xiàn)a的值還沒得到,就要執(zhí)行b想要做的事。

2018年8月18日 08:09
編輯回答
神曲
var ajaxCode;
function a() {
    ajax({
        success: function(data){
            ajaxCode = data.code;
        }
    })
}

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

$('button').trigger('EventName',b);
2018年2月15日 02:42