• javascript 异步实现方案


    1、回调函数

      fn1( fn2 );

    2、事件监听

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

    3、发布-订阅

    (1)fn2像“信号中心”订阅了done信号
            Jquery.subscribe("done", fn2);
    
    (2) fn1向信号中心发布信号
        function fn1(){
            setTimeout(function(){
                 Jquery.publish("done");  
            },2000)  
        }
    

    4、 promises

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

    5、generator

    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)
    })
    

    6、 async 函数

    async function getStockPriceByName(name) {
      var symbol = await getStockSymbol(name);
      var stockPrice = await getStockPrice(symbol);
      return stockPrice;
    }
    
    getStockPriceByName('goog').then(function (result) {
      console.log(result);
    });
    

      

  • 相关阅读:
    平台架构设计及市场分析
    编写jQuery插件
    分布式锁
    初探12306售票算法(一)- 理论(转)
    年后跳槽如何准备?(转)
    therefore/so/hence/then/accordingly/Thus
    ignore,neglect,omit,overlook
    OOA/OOD/OOP(转)
    SQL Server里的 ISNULL 与 NULLIF
    稀疏矩阵
  • 原文地址:https://www.cnblogs.com/wxiaona/p/7543857.html
Copyright © 2020-2023  润新知