微信小程序遇到的需求,封裝了一個請求,需返回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出來