请教一下 JS 的异步的用法:
这两段代码的语义是完全等价的吗:
(async () => {
var x = await new Promise(r => {
statement_1;
statement_2;
r(some_value);
});
statement_3;
statement_4;
.....;
})();
final_statement;
(async () => {
new Promise(r => {
statement_1;
statement_2;
r(some_value);
}).then(x => {
statement_3;
statement_4;
.....;
});
})();
final_statement;
这两段代码里都是 statement_final
和 statement_1
, statement_2
是同步执行的?和 statement_3&4
是异步执行的?
1
zhwithsweet 2018-04-26 09:13:39 +08:00
statement_final 和 statement_1, statement_2 是同步执行 √
statement_3&4 是异步执行 √ 第一种写法用 await 把 resolve(value)的值,也就是你这个 some_value 赋给了 x,第二种用 then 传参赋值,本质没啥区别。√ |