问答

请问JavaScript这种问题怎么解决好嗯?

作者:admin 2021-08-16 我要评论

想用JavaScript做个Chrome插件,但是很多东西让我太吐血了。 一般来说,应该先执行1再执行2,但是她偏偏先执行2,再执行1, 请问在不改变大结构的情况下,怎么解...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

QQ截图20200513223204.png

想用JavaScript做个Chrome插件,但是很多东西让我太吐血了。
一般来说,应该先执行1再执行2,但是她偏偏先执行2,再执行1,
请问在不改变大结构的情况下,怎么解决呢?
源码如下:
`
if(r.cmd=="ck")

{
    //bg_mss('判断ck成功,进入ajax' , "");
    
    $.ajax
    ({
        type : 'POST',      //默认是GET
        url : 'http://192.168.177.130/egg/myhome.php/home/sycm/add_cookie',
        data : {
            'cookie':r.s_cookie,
            'localhost':r.lh,
            'url': r.url
        },
        
        //beforeSend:f_before,    //发送之前函数
        success : function(rdata)    //成功函数,data 就是从*.php echo 的字符串内容;
        {
            alert( "ajax内:" + rdata );
            sr = rdata;
        },
        
        //complete :f_complete,   //不管成功失败都执行的函数
        //error : f_Error,        //错误函数
        //dataFilter : f_filter,  //数据处理函数

        cache:false    //是否使用缓存
    });
    

    alert( "ajax外:" + sr );
    
    
    sendResponse(sr);

}
`
###

小兄弟,1是异步执行的callback,怎么可能比2要先执行(你要是还是不明白,请自行补习js关于callback、异步执行的基础知识)?!你要2先于1执行,只能把2的内容移到1所在的函数内部,并且放在1的后面

###

正如楼上所说,ajax回调是异步的所以2先执行。
可以用async/await

###

哈哈 你没理解js的精髓啊 给2放到setTimeout()里面,或者写到success回调函数里面

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 请问JavaScript这种问题怎么解决好嗯?

    请问JavaScript这种问题怎么解决好嗯?

  • webpack-manifest 可以缓存img吗

    webpack-manifest 可以缓存img吗

  • linux shell 新手求教

    linux shell 新手求教

  • sequelize连表查询嵌套太深

    sequelize连表查询嵌套太深

腾讯云代理商
海外云服务器