javascript 異步實現方案

一、回調函數javascript

  fn1( fn2 );java

二、事件監聽node

fn1.on('done', fn2);

function fn1() {
  setTimeout(function(){
       fn1.trigger('done');
    },1000)      
}

三、發佈-訂閱git

(1)fn2像「信號中心」訂閱了done信號
        Jquery.subscribe("done", fn2);

(2) fn1向信號中心發佈信號
    function fn1(){
        setTimeout(function(){
             Jquery.publish("done");  
        },2000)  
    }

四、 promisesgithub

fn1().then(fn2);

function fn1(){
  var dfd = $.Deferred();
  setTimeout(function(){
     resolve();
  },2000);    
}

五、generatorjson

var fetch = require('node-fetch');

function * gen(){
     var url = "xxxxx.github";
     var result = yelid fetch(url);
    console.log(result.do);
}

var g = gen();
var result = g.next();

result.value.then(function(data){
   return data.json();
}).then(function(data){
    g,next(data)
})

六、 async 函數promise

async function getStockPriceByName(name) {
  var symbol = await getStockSymbol(name);
  var stockPrice = await getStockPrice(symbol);
  return stockPrice;
}

getStockPriceByName('goog').then(function (result) {
  console.log(result);
});
相關文章
相關標籤/搜索