亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于異步獲取數據后,如何return到最外層函數?

關于異步獲取數據后,如何return到最外層函數?

慕桂英3389331 2019-02-07 14:11:17
在開發小程序時,需定義一個轉發事件,將{path: shareId,}返回給最外層函數onShareAppMessage,代碼如下:const onShareAppMessage = (para) => {    let shareId;    wx.request({        url: 'https://xxx/xxx.php',        data: {para:para},        success: function (res) {            shareId = res.data.shareId        }    })    return {        path: shareId,    }}其中,wx.request就跟$.ajax差不多,但是只能異步獲取數據,不能同步,所以return回去的對象{path: shareId}中shareId是undefined。如果將return寫在sunccess里,能保證shareId正確賦值,但是不能將對象返回到外層的onShareAppMessage了。請問此問題該如何解決?首先感謝各位的回答,可能我沒表達清楚我的問題。我是要將異步的數據return給外層的函數,不是用promise改變代碼格式!
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

因為結果是異步返回的,所以你不能使用同步的方式-即直接獲得結果,所以你不知道該解決獲得結果之后的處理過程和這個不能直接獲得的結果,之間矛盾。

解決的辦法是使用callback,將上面提到的得到結果之后需要做的事情放在這個callback里,在得到結果之后執行callback即可。


查看完整回答
反對 回復 2019-02-21
  • 1 回答
  • 0 關注
  • 2065 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號