收藏
回答

云函数怎么发送同步get请求?

有段代码需要遍历一个数组,对符合条件的元素要进行get请求,因为后续的操作需要用到请求的结果,所以必须要等get请求完成。然后现在的get请求大概需要2-3秒完成,所以异步的话是拿不到结果的。所以想问问怎么写同步的请求,用到什么package或者什么方法

(这不用附代码了吧,需求说的很明白了)

for .....
    if ......
        request....

//后续操作,需要等到for循环完成且request完成
.......
回答关注问题邀请回答
收藏

3 个回答

  • 无言
    无言
    发表于小程序端
    2020-03-28
    为啥异步拿不到结果?你等异步完成不就行了?我感觉你这需求说得一点儿也不明白啊
    2020-03-28
    有用
    回复
  • 老张
    老张
    2020-03-27

    get可以改写在小程序端呢?

    2020-03-27
    有用
    回复 5
    • 夜雪
      夜雪
      2020-03-27
      wx.request一样是异步的,,而且整个项目设计确实写到云函数比写到小程序端要好,就卡在这最后一个问题了
      2020-03-27
      回复
    • 老张
      老张
      2020-03-27回复夜雪
      async youFunc(){
      for ...
      if...
      await request...
      }
      这样就可以了
      2020-03-27
      回复
    • 老张
      老张
      2020-03-27回复老张
      如果用wx.request的话,需要先将它同步化。
      https://developers.weixin.qq.com/community/develop/article/doc/00028cbc2e04e0ddf549d535351c13
      2020-03-27
      回复
    • 夜雪
      夜雪
      2020-03-27回复老张
      但是云函数里除了main以外不能再定义函数了吧,没法写async youfunc
      2020-03-27
      回复
    • 老张
      老张
      2020-03-27回复夜雪
      听出你不懂async/await了,你去学一下吧。
      2020-03-27
      回复
  • 加肥猫
    加肥猫
    2020-03-27
    const cloud = require('wx-server-sdk')
    cloud.init()
    exports.main = async (event, context) => {
      try {
        const result = await cloud.openapi.wxacode.getUnlimited({
            scene: 'a=1'
          })
        console.log(result)
        return result
      } catch (err) {
        console.log(err)
        return err
      }
    }
    

    一个参考:云调用的官方示例 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html#method-cloud





    2020-03-27
    有用
    回复 2
    • 夜雪
      夜雪
      2020-03-27
      但是我是要拿到结果进行后面的操作,并不是直接return就退出云函数了了,怎么能把结果赋到一个变量里再进行后续的操作
      2020-03-27
      1
      回复
    • 冰玉虫蝴蝶(贵)
      冰玉虫蝴蝶(贵)
      2022-04-20回复夜雪
      怎么解决的了呢
      2022-04-20
      回复
登录 后发表内容
问题标签