我爱吃苹果
我爱吃苹果
  • 发布:2018-08-30 11:14
  • 更新:2020-05-03 11:40
  • 阅读:15007

uni.request是异步请求,如何改为同步请求?await?怎么用?

分类:uni-app

uni.request是异步请求,如何改为同步请求?await?怎么用?

2018-08-30 11:14 负责人:无 分享
已邀请:
wangbor@yeah.net

wangbor@yeah.net

和楼上同样的问题?有没有示例啊?官方可以出一个uni.requestSync的方法吗?

折纸鸟

折纸鸟

我就说嘛uni.request在success回调里面的打印的数据老是等uni.request后面的程序后面的程序执行完了后他才打印出来,好坑啊!我是说数据HTTP获取后TM不能用,各种办法都实验完了怎么都是不行!!关键是怎么解决啊!!

Neil_HL

Neil_HL

hello uniapp的支付示例里面使用了await,你可以参考下

  • javatong

    这种封装谁都会,现在问题是有那种必须双同步的,比如获取token,getToken方法会检验过期,过期的话刷新token,此时需要同步,getToken也需要同步,你这样用await,ajax请求是同步了,getToken方法变异步了

    2019-09-10 18:15

ttylikl@qq.com

ttylikl@qq.com

https://uniapp.dcloud.io/api/README 里有如下文字:

uni-app 对 API 进行了 Promise 封装,如无 success、fail、complete 参数,将以 Promise 返回数据。

试了uni.request,不对啊!

767684610@qq.com

767684610@qq.com

我目前想到的办法是用callback的方式处理,有更好办法的大佬还请分享一下~~

  • zting590

    如何用回掉,能详细说下或者给个demo吗?

    2019-11-26 21:35

zting590

zting590

请问解决了吗?

  • 生有可恋lys

    setTimeOut写死吧, 网络不好的算他倒霉

    2020-03-19 21:03

1293276450@qq.com

1293276450@qq.com

有解决方案了吗

1209448798@qq.com

1209448798@qq.com

// 默认方式
uni.request({
url: 'https://www.example.com/request',
success: (res) => {
console.log(res.data);
}
});

// Promise
uni.request({
url: 'https://www.example.com/request'
})
.then(data => {//data为一个数组,数组第一项为错误信息,第二项为返回数据
var [error, res] = data;
console.log(res.data);
})

// Await
function async request () {
var [error, res] = await uni.request({
url: 'https://www.example.com/request'
});
console.log(res.data);
}

要回复问题请先登录注册