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

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.8k
3 个回答

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题