关于promise和promise.all得用法

哈哈,首先来点题外话,我觉得还是很多人都经历的事情。我有个表弟,现在大学毕业找工作了,大学专业是护理,由于没有护理证,现在找不到好一点得工作,听说消防员工资待遇好,考了消防证,结果找工作工资并没有别人说的那种,工资高,待遇好。今天问我,互联网工资高,待遇好,觉得我工作还可以,想学习软件开发,我就问他,你问什么现在又想学习互联网呢?他就说好找工作,待遇好,工资高。我就告诉他,不要听别人说什么你就信什么,鞋子合不合脚,只有自己穿了就知道。所有,包括我自己,也是开发这行得小白,如果你真的喜欢这份工作,或许某分工作,不要介意别人怎么看你,怎么说你,你要相信自己,不要放弃,一步一步来,不要急于求成,不要一步想登天,夯实基础。

看重点吧

我是node.js写后台接口,然后呢在函数表达式中获取值

如何将Promise.then中的值直接return出来

Promise 如何返回值,而不是返回 Promise 对象。实际开发中使用封装好的异步请求函数,为什么调用该函数返回的值一直都是 undefined。

一、需求

定义一个foo函数,在里面执行异步操作,然后取得Promise.then中的值并return出来,以便在别的地方使用该返回值。

该需求可以用伪代码表示如下:


二、遇到的问题

1. 返回 undefined

问题代码


问题原因:
最直接的原因,foo函数没有返回值,所以是undefined。里面的return语句是写在箭头函数里的,所以箭头函数的return不是foo函数的。

2. 没有返回正确的值

问题代码:


问题原因:

同步和异步的问题,「无法在当前获得未来的值」。前面声明了result,而后面对它的赋值发生在异步操作中

三、正确的方法

经过一番研究,得出结论:不可能实现直接将Promise.then中的值return出来。

正确的使用方式只能是:return出Promise对象,然后在.then的执行体中处理异步请求得到的值(或者用async/await)。

1. 返回 Promise 对象


2. 使用 .then 处理返回的数据


3. 使用 async/await 处理返回的数据


五、实战代码

将异步请求封装成一个方法,并return异步请求结果给变量。


建议使用.then处理返回函数,如果是处理多个函数表达式,一定用!!!!!!!!!!!!!!!

Promise.all([reults,promise1,promise2])

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。