关于如何把Promise.then中的值直接return出来
微信小程序遇到的需求,封装了一个请求,需返回Promise.then的值。
一、遇到的问题
问题代码:
function getBackNodePromise(taskId) {
this.req.getBackNode({
taskId
})
.then((res)=>){
return res;
}
}
这样写会导致先return,再执行Promise请求.终究返回了个null
二、解决
经过一番研究,得出结论:不可能实现直接将 Promise.then 中的值 return 出来。
正确的使用方式只能是:return 出 Promise 对象,然后在 .then 的执行体中处理异步请求得到的值(或者用 async/await)。
第一种:
function getBackNodePromise(taskId) {
return this.req.getBackNode({taskId}); //`return` 出 `Promise` 对象
}
let backPromise = util.getBackNodePromise(params.taskId)
backPromise.then(value => {
...
//此时value就是我们想获得的值
})
第二种:
...

浙公网安备 33010602011771号