js控制异步输出顺序
class Test {
constructor() {
const nums = [1, 2, 3];
(async() => {
for(let i of nums) {
let x = await this.print(i);
console.log(x);
}
})();
}
print(x) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(x);
}, 1000);
})
}
}
const test = new Test();
(async() => {
let x4 = await test.print(4);
console.log(x4);
let x5 = await test.print(5);
console.log(x5);
})();
怎样才能做到顺序输出 1 2 3 4 5 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Test类增加一个cprm属性,用来接收构造函数里面的异步调用,值是Promise类型。然后在调用输出4之前await这个cprm属性,就可以等到构造函数的123都输出完成后再输出4。
我来投机取巧,~( ̄▽ ̄)~*