怎么建设菠菜网站,网站显示目录,公司网站用什么程序,女装东莞网站建设进程和线程进程#xff08;厂房#xff09;#xff1a;程序的运行环境线程#xff08;工人#xff09;#xff1a;进行运算的东西同步和异步同步#xff1a;一件事干完才去干下一件事#xff0c;前面的代码不执行#xff0c;后面的代码也不执行。同步的代码可能会出现…进程和线程进程厂房程序的运行环境线程工人进行运算的东西同步和异步同步一件事干完才去干下一件事前面的代码不执行后面的代码也不执行。同步的代码可能会出现阻塞情况。Java 和 pathon 中都是通过多线程解决阻塞。node.js通过异步解决异步一段代码的执行不会影响到其他代码。console.log(11111111);
function sum(a, b, cb) {setTimeout(() {cb(a b);});
}
sum(123, 456, (result) {console.log(result);
});
console.log(22222222);异步相加的结果上再加 777console.log(11111111);
function sum(a, b, cb) {setTimeout(() {cb(a b);});
}
sum(123, 456, (result) {sum(result, 777, (result) {console.log(result);});
});
console.log(22222222);上述代码可以看出出现了回调地狱可读性差、代码调试不方便。解决问题需要一个东西代替回调函数返回结果。promise异步必须通过回调函数来返回结果。promise 是用来存储数据的容器可以存储异步调用的结果。promise解决回调地狱// 错误的示例写了一个promise的回调地狱
function sum(a, b) {return new Promise((resolve, reject) {setTimeout((a, b) {resolve(a b);});});
}sum(123, 456).then((result) {sum(result, 7).then((result) {sum(result, 8).then((result) {console.log(result);});});
});promise.then() 返回值也是一个 promise 对象所以可以有 promise.then().then() 的形式promise 的链式调用sum(123, 456).then((result) {return result 7;}).then((result) { // 来自上一个 result 7return result 8;}).then((result) { // 来自上一个 result 8return result 9;}).then((result) { // 来自上一个 result 9console.log(result);});