19新版教育培训风格演示站
标题:
JS中异步调用可以转化为同步调用吗?
[打印本页]
作者:
BIG烂漫儿
时间:
2019-1-10 17:23
标题:
JS中异步调用可以转化为同步调用吗?
function wait() {
const p = () => ({
value: new Promise(resolve => setTimeout(() => resolve(), 3000))
})
let state = {
next: () => {
state.next = programPart
return p()
}
}
function programPart() {
console.log('unlocked1')
state.next = programPart2
return p()
}
function programPart2() {
console.log('unlocked2')
console.log('it\'s sync!!')
return {
value: void 0
}
}
return state
}
复制代码
这个函数该如何调用?
作者:
Wotchin
时间:
2019-1-10 17:23
var state = wait()
state.next()
.value
.then(() => state.next().value)
.then(() => state.next().value)
.then(() => console.log(state.next()))
作者:
Geely
时间:
2019-1-10 17:24
可以使用async函数来实现视觉上的同步调用。async是 Generator 函数的语法糖。
const fn = async function () {
let state = wait();
await state.next().value;
await state.next().value;
return state.next().value;
}
fn()
复制代码
欢迎光临 19新版教育培训风格演示站 (http://47.100.112.22/demo/train/)
Powered by Discuz! X3.5