当前位置: 首页 > news >正文

学做标书的网站广州网站建设网站优化推广

学做标书的网站,广州网站建设网站优化推广,外贸网站建站案例,Wordpress报价主题Promise 如何返回值#xff0c;而不是返回 Promise 对象。实际开发中使用封装好的异步请求函数#xff0c;为什么调用该函数返回的值一直都是 undefined。 一、需求 定义一个 foo 函数#xff0c;在里面执行异步操作#xff0c;然后取得 Promise.then 中的值并 return 出来…Promise 如何返回值而不是返回 Promise 对象。实际开发中使用封装好的异步请求函数为什么调用该函数返回的值一直都是 undefined。 一、需求 定义一个 foo 函数在里面执行异步操作然后取得 Promise.then 中的值并 return 出来以便在别的地方使用该返回值。 该需求可以用伪代码表示如下 javascript function foo() {// 执行异步操作得到 hello world! 字符串并 return 出去 } result foo() console.log(result) // 预期结果打印出 hello world!二、遇到的问题 1. 返回 undefined **问题代码** javascript function foo() {var p new Promise((resolve, reject) {resolve(hello world!)});p.then(value {return value}) } result foo() console.log(result) // undefined问题原因 最直接的原因foo 函数没有返回值所以是 undefined。里面的 return 语句是写在箭头函数里的所以箭头函数的 return 不是 foo 函数的。 2. 没有返回正确的值 **问题代码** javascript function foo() {let result var p new Promise((resolve, reject) {resolve(hello world!)});p.then(value {result value})return result } result foo() console.log(result) // 问题原因 同步和异步的问题「无法在当前获得未来的值」。前面声明了 result而后面对它的赋值发生在异步操作中。 三、正确的方法 经过一番研究得出结论 不可能实现直接将 Promise.then 中的值 return 出来。 正确的使用方式只能是return 出 Promise 对象然后在 .then 的执行体中处理异步请求得到的值或者用 async/await。 1. 返回 Promise 对象 **javascript** function foo() {return new Promise((resolve, reject) {resolve(Success!)}); } result foo() console.log(result) // [object Promise]2. 使用 .then 处理返回的数据 **javascript** function foo() {return new Promise((resolve, reject) {resolve(hello world!)}); } p foo() p.then(result console.log(result)) // hello world!2. 使用 async/await 处理返回的数据 **javascript** function foo() {return new Promise((resolve, reject) {resolve(hello world!)}); } // 通过async/await去操作得到的Promise对象 (async function () {result await foo()console.log(result) // hello world! })()五、实战代码 将异步请求封装成一个方法并 return 异步请求结果给变量。 javascript // 1. 封装数据请求方法异步 function getSomething() {return new Promise(resolve {service.getList().then(res {resolve(res)}) }) } // 2. 使用 Promiseasync 实现 async function asyncFn() {let returnData await getSomething()return returnData } // 3. 因为asyncFn()返回的是 Promise对象而不是直接返回值所以需要.then来获取值进行操作 asyncFn().then(value {let data value })案例使用 // 根据数据类型获取数据源列表getDataStorage(type: string) {return new Promise(resolve {const params: object {dataType: type};getDataStorage(params).then(res {resolve((res as any).data);}).catch(err {// doalert(err);});});}// sink卡片中数据源类型切换时获取数据源列表getPushSourceOptions(val: string) {const p this.getDataStorage(val);p.then(result {const tabActive parseInt(this.editableTabsValue) - 1;(this.form.dcWebSinkInfoDTO.sinkUnitDTOList[tabActive].dcWebPushUnitDTO.pushSourceOptions as any) result;});}
http://www.w-s-a.com/news/286746/

相关文章:

  • 自己做网站处理图片用什么软件wordpress html5支持
  • 校园网站怎么建软文文案范文
  • 中国建设官方网站如何创建自己的软件
  • 来宾住房与城乡建设网站天津西青区怎么样
  • 西安网站建设培训班鄂州网页定制
  • 西部数码网站备份自己怎么做网站啊
  • h5网站开发用什么软件制作公司网站建设代理怎么做
  • 网站建设资料准备网上购物app有哪些
  • 沧州做网站优化哪家公司便宜国内百度云网站建设
  • 网站的最近浏览 怎么做龙岩市人才网最新招聘信息
  • 网站建设需要找工信部吗网站开发账务处理
  • 做那种的视频网站个体工商网站备案
  • 推广网官方推广网站中国建设招聘信息网站
  • 医院网站建设需要多少钱网络营销渠道可分为哪几种
  • 怎么取网页视频网站元素计算机专业论文网站开发
  • 上海网站建设备案号怎么恢复wordpress打开页面空白
  • 30个做设计的网站企业设计网站
  • 招生网站开发的背景创意 wordpress
  • 网站备案资料查询小型企业管理系统软件
  • 温州网站建设维护怎么做好网站开发、设计
  • 佛山 做网站公司有哪些网站排名忽然不见了
  • 广告网站建设最专业东莞大朗网站设计
  • 网站做流量的论坛贴吧分销商城系统源码
  • 新手建立网站的步骤网站建设费怎么入分录
  • 哪里建网站性价比高做网站赚取广告费
  • 邢台集团网站建设价格微信怎么做捐钱的网站
  • 做网站费用需要分摊吗装修公司一般多少钱一平方
  • 公司主页的网站格式wordpress自动推送给百度
  • 网站建设辶金手指排名十二wordpress 当数据库
  • 无锡手机网站建设服务苏州展厅设计企业