关于如何把Promise.then中的值直接return出来

微信小程序遇到的需求,封装了一个请求,需返回Promise.then的值。

一、遇到的问题

问题代码:

function getBackNodePromise(taskId) {

 	this.req.getBackNode({
        taskId
    })
      .then((res)=>){
          return res;
      }
}

这样写会导致先return,再执行Promise请求.终究返回了个null

二、解决

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

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

第一种:

function getBackNodePromise(taskId) {
  return this.req.getBackNode({taskId}); //`return` 出 `Promise` 对象
}

let backPromise = util.getBackNodePromise(params.taskId)
backPromise.then(value => {
	...
    //此时value就是我们想获得的值
})

第二种:

​ ...

参考博客:文渊博客 如何将Promise.then中的值直接return出来

猜你喜欢

转载自www.cnblogs.com/toWorld/p/13177836.html
今日推荐