let b = this.a()
console.log(b)
接收方式主要有如下两种
第一种:then 接收
let b = this.a()
.then(res =>{
console.log(res)
.catch(err =>{
console.log(err)
第一种:async和await接收(async 和 await 必须是一起的)
async c(){
let b = await this.a()
console.log(b)
Uniapp报Promise { pending }是什么?此提示主要告诉我们的是我们接收的方式有问题可知: promise 要用then接收或者async await// 如定义一个变量直接a(),然后赋值给 blet b = this.a()console.log(b) //这里就会返回 Promise {<pending>}接收方式主要有如下两种第一种:then 接收let b = this.a().then(res =>{ //.then是接收正确返回的
在使用 uni-app 开发前端的过程中,uni-app 官方已为我们提供了非常丰富的组件和 API,比如 uni.request 网络请求,如果我们直接在代码中使用会造成较多的冗余,因此一般都会进行封装。之前有介绍过 uni.request 的基础封装,今天介绍另一种封装方式:基于 promise 的封装方式。
二、创建http.js
在项目根路径下新建 commons 文件夹,并创建一个 http.js,内容如下.
let lyric = getLyric(this.$store.state.songId);
let a = lyric.then((res)=>{
console.log(res.data)
问题描述:
当使用uniapp开发微信小程序时,对接口请求进行 promise 加 async/await 封装时 接口请求可以发送,在network中也可以看到接口请求但是就是拿不到 wx.request 或 uni.request 的 success fail complete 三个参数
大概表现为:
index.vue里面用async/await
import { post } from '@/api/http';
async g
之前貌似很少写过promise, async, await相关的内容。我大概知道await使用的时候,函数必须外边有async. 我今天写函数的时候,写了一个函数,然后调用的时候,发现返回的是promise<pending>的状态。但是我在调用的函数里面打log, 是能打出来结果的,搜了很长时间才找到答案。最后也解决了。这里记录一下:
var rs={score:0};
var g...
如果是用HBuilderX创建的uni-app项目,可继续往下看
在使用uni-app的API之uni.request进行数据请求时,微信开发者工具正常请求回来数据,但是H5端却产生跨域报错:
使用方式如下:
getList() {
uni.request({
url: 'http://157.122.54.189:9088/image/v3/homepage/vertical',
data: this.params
}).then(res => {
console.log('res
pending: 等待状态,比如正在进行网络请求,或者定时器没有到时间。
fulfill:满足状态,当我们主动回调了resolve时,就处于该状态,并且会回调.then()。
reject:拒绝状态,当我们主动回调了reject时,就处于该状态,并且会回调.catch()。
因此就存在我们需要等几个异步请求都完成后再进行操作的情况。此时怎么做呢?设置定时?很显然无法保证。在次我们就可以使用Promise.all()