异步请求数据如何变为同步?

新手上路,请多包涵

图片如下:

QQ图片20191026191328.png

我想将请求到的数据给return出去,也就是url,但是uni.request中执行的操作变为第三步去了,在第二步中return出去的还为空,麻烦解决一下,谢谢!!

阅读 13.4k
6 个回答

clipboard.png

JS 异步变同步 可使用ES7 新语法async和await 语法(博文参考:ES7前端异步玩法:async/await理解)。具体实现 一楼的已经给出来答案;不过需要特别强调一下:非特殊业务需求,网络请求不要使用同步,使用同步会卡线程,可能会出现页面操作卡顿,事件无响应等问题

async function hosListTop () {
  const newUrl = await uni.request({url: 'xxxxxx'})
  console.log('newUrl', newUrl)
}

异步请求是无法变成同步的,你直接return uni.request() 出现就行了。return 会返回一个Promise 对象,可以通过.then 或者 .catch 进行接收结果使用

想转同步也行,死循环判断变量是否得到

推荐问题
宣传栏