注册 登录
编程论坛 JavaScript论坛

关于js异步的问题

混混沌沌混沌 发布于 2015-05-10 11:44, 1083 次点击
有两个方法, 一个费时,一个秒出.
想同时执行,哪个快先执行哪个,有没有好的办法...
function A(s){//费时
    var arr = new Array();
    for ( var int = 0; int < 50000; int++) {
        arr.push(int);
        arr.reverse();
    }
    console.info(s||1);
}
function B(s){//秒出
  console.info(s||2);
}

想要的结果是
立马输出2,等A执行完后,再输出1.

[ 本帖最后由 混混沌沌混沌 于 2015-5-10 12:08 编辑 ]
5 回复
#2
冰镇柠檬汁儿2015-05-10 12:51
你这两个方法先调用哪个,就先出哪个结果,Javascript是单线程的,没有多线程的概念。
你到底想要完成一个什么样的功能?
#3
混混沌沌混沌2015-05-10 13:20
回复 2楼 冰镇柠檬汁儿
多个函数不确定哪些是费时的函数,想让不费时的优先执行,费时的函数后续执行.
#4
冰镇柠檬汁儿2015-05-10 18:25
楼主想多了,随便哪个先执行都可以,多用不了多少时间的
你明知道函数A会用更长的时间,就放到后面调用就可以了,其实哪个先执行,总时间都不会变,阻塞的时间也不会变,没有意义的事情
#5
混混沌沌混沌2015-05-10 19:58
回复 4楼 冰镇柠檬汁儿
可能我没表达清楚...
A,B只是个假设...模拟的...
实际情况有可能A慢, 也有可能B慢...也有可能C慢...
想要快的先执行, 先在前台页面看见, 慢的, 让它慢慢执行.
#6
冰镇柠檬汁儿2015-05-11 11:13
是你始终没理解我说的
仔细想清楚,javascript是单线程的,没有多线程一说,所有的函数只能顺序处理,明白吗
你要是明知道某个函数慢,可以用setTimeout这类方法,每次执行一部分,等过一会儿再继续执行另一部分,知道执行完成
1