Re: [问题] 把异步模拟成同步的问题

楼主: awpadam (adam!)   2018-06-21 13:17:43
各位好,上一篇文章中
很多版友都建议我使用 await 的方法
不过我研究了一下之后发现,await好像和promise一样
都是在处理 异步与异步间的流程控制
好像没办法达到 : 在同步与异步交互流程中
把异步的函式模拟成同步的
例如下面的例子
function resolveAfter2Seconds(x) {
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
async function getService() {
return await resolveAfter2Seconds(10);
}
var value = getService();
console.log(value);
console.log(222);
//处理 getService() 后的后续流程
执行结果:
Promise {<pending>}
222
(在不把 console.log(222) 包成 callback 的情况下)
请问是否有任何办法让这只程式 变成
执行结果:
10
222
我总觉得这个问题好像很难
先祝各位大大有愉快的一天~
作者: Kenqr (function(){})()   2018-06-21 16:37:00
var value = await getService();
作者: oToToT (屁孩)   2018-06-21 17:40:00
把全部东西包到一个async lambda里直接跑?
作者: eight0 (欸XD)   2018-06-23 03:18:00
以前有写过一篇关于 async 的文章 #1OnKhr9c (Ajax)
作者: Gold740716 (项为之强)   2018-06-24 13:38:00
edge firefox chrome 都可以直接用 async 了吧

Links booklink

Contact Us: admin [ a t ] ucptt.com