Javascript – async await vs promise回调
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript – async await vs promise回调,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1420字,纯文字阅读大概需要3分钟。
内容图文
我正在进行代码更改以将.then(func {})样式代码转换为异步等待.
在我的示例中,从那时转换为异步等待,无法并行查询API并按请求完成的顺序处理它们,因为两个请求彼此独立.
这是两种语法之间的有效区别还是只是将两个函数分成两个单独的异步函数才能使它们并行运行?
升级前的示例代码:
componentDidMount() {
this.loadLists();
}
loadLists() {
console.log('start 1');
api.get('/url/1').then(function(r) {
console.log('done 1', r.body);
});
console.log('start 2');
api.get('/url/2').then(function(r) {
console.log('done 2', r.body);
});
}
//OUTPUT
//start 1
//start 2
//done 1
//done 2
升级后的示例代码:
componentDidMount() {
this.getLists();
}
async getLists() {
console.log('start 1');
var res = await api.get('/url/1');
console.log('done 1', res.body);
console.log('start 2');
var res2 = await api.get('/url/2');
console.log('done 2', res2.body);
}
//OUTPUT
//start 1
//done 1
//start 2
//done 2
编辑:
如果函数分为两个,async loadList1(),async loadList2()
是否正在调用这两个函数等待正确使用,这将导致两个请求同时提交(几乎)?
解决方法:
await负责等待承诺得到解决.如果您希望请求并行运行,您可以简单地踢它们并等待它们:
console.log('start 1');
var res = api.get('/url/1');
console.log('start 2');
var res2 = api.get('/url/2');
console.log('done 1', (await res).body);
console.log('done 2', (await res2).body);
但是当然这仍然会引入一些顺序依赖,因为你总是要在res2之前处理res.
如果你有更多的电话,Promise.all仍然是要走的路.请记住,async / await只是用于创建和解决promise的语法糖.
内容总结
以上是互联网集市为您收集整理的Javascript – async await vs promise回调全部内容,希望文章能够帮你解决Javascript – async await vs promise回调所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。