微信小程序遇到的需求,封装了一个请求,需返回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就是我们想获得的值
})
第二种:
...
参考博客:文渊博客 如何将Promise.then中的值直接return出来