return new promise((res,rej)=>{})是什么意思
时间: 2024-04-13 15:26:26 浏览: 162
`return new Promise((res, rej) => {})` 是一个创建并返回一个新的 Promise 对象的语法。Promise 是 JavaScript 中处理异步操作的一种方式。
在这段代码中,使用了 Promise 构造函数来创建一个新的 Promise 对象。Promise 构造函数接受一个函数作为参数,这个函数有两个参数 `res` 和 `rej`,分别表示 Promise 的成功和失败状态。
在这个例子中,Promise 对象的状态还没有被解决(即既不是成功也不是失败),因此在函数体内部没有任何操作。你可以在 `res` 参数中传入一个值,以表示 Promise 的成功状态,或者在 `rej` 参数中传入一个值,以表示 Promise 的失败状态。
一旦 Promise 对象的状态被解决(即调用了 `res` 或 `rej` 函数),你可以通过调用 `.then()` 方法来处理成功态,或者通过调用 `.catch()` 方法来处理失败态。
总的来说,这段代码创建了一个尚未解决的 Promise 对象,可以用于执行异步操作,并通过 `res` 和 `rej` 参数来控制 Promise 的状态。
相关问题
我试用了以下方式封装Uni-request,但是接口并没有拿到数据,请帮我分析一下// 封装uni-request import uniRequest from 'uni-request'; let baseURL = "***"; function request(params) { let headerData = { 'content-type': 'application/json' } let method = params.method.toUpperCase(); //小写改为大写 let dataObj = null; let requestParam = null; if (method == "GET" ) { headerData = { 'content-type': 'application/json', } requestParam = params.param } else { requestParam = params.data } return new Promise((res,rej) =>{ uni.request({ url:baseURL + params.url, data: requestParam, method: method, header: headerData, success(data) { res(data) }, fail: (err) => { reject(err); console.log(err) }, }) }) } export default request; import request from '@/utils/request' export const getDept = (param) => { return request({ method:'get', url:'/***', param:param }) } getDept(param).then(res =>{ })
根据你提供的代码,有可能是请求地址的问题。请检查你的接口地址是否正确并且能够正常访问。另外,你封装的请求函数中,GET 请求的参数应该是 params.params 而不是 params.param。建议你将代码中的 requestParam 改为 requestData,并且将请求参数写入到 dataObj 中,最后将 dataObj 作为 data 值传入 uni.request。修改后的代码如下:
```
import uniRequest from 'uni-request';
let baseURL = "***";
function request(params) {
let headerData = {
'content-type': 'application/json'
}
let method = params.method.toUpperCase(); //小写改为大写
let requestData = null;
let dataObj = {
param: params.param
};
if (method == "GET" ) {
headerData = {
'content-type': 'application/json',
}
requestData = dataObj;
} else {
requestData = params.data
}
return new Promise((res,rej) =>{
uni.request({
url:baseURL + params.url,
data: requestData,
method: method,
header: headerData,
success(data) {
res(data)
},
fail: (err) => {
reject(err);
console.log(err)
},
})
})
}
export default request;
import request from '@/utils/request'
export const getDept = (param) => {
return request({
method:'get',
url:'/***',
params: param
})
}
getDept(param).then(res =>{
console.log(res)
})
```
另外,你在使用 getDept 函数时,需要将 param 参数传入。你需要将 param 定义为一个对象,然后将其作为 getDept 的参数进行调用,如下所示:
```
const param = { deptId: 1 };
getDept(param).then(res =>{
console.log(res)
})
```
希望这些修改能够帮助你解决问题。
我在Uniapp中封装了Uni-request,但是接口并没有收到我传的值,请帮我分析问题function request(params) { let headerData = { 'content-type': 'application/json' } let method = params.method.toUpperCase(); //小写改为大写 let dataObj = null; let requestParam = null; if (method == "GET" ) { headerData = { 'content-type': 'application/json', } requestParam = params.param } else { headerData = { 'content-type': 'application/json', } requestParam = params.data } return new Promise((res,rej) =>{ uni.request({ url:baseURL + params.url, data: requestParam, method: method, header: headerData, success(data) { res(data) }, fail: (err) => { reject(err); console.log(err) }, }) }) } export default request;
根据你提供的代码,可以看出你的封装函数中,GET 请求的参数应该是 params.params 而不是 params.param。另外,你的代码中 dataObj 变量没有被使用到,建议将其去掉。修改后的代码如下:
```
function request(params) {
let headerData = {
'content-type': 'application/json'
}
let method = params.method.toUpperCase(); //小写改为大写
let requestParam = null;
if (method == "GET" ) {
headerData = {
'content-type': 'application/json',
}
requestParam = params.params
} else {
headerData = {
'content-type': 'application/json',
}
requestParam = params.data
}
return new Promise((res,rej) =>{
uni.request({
url:baseURL + params.url,
data: requestParam,
method: method,
header: headerData,
success(data) {
res(data)
},
fail: (err) => {
reject(err);
console.log(err)
},
})
})
}
export default request;
```
另外,你在使用 request 函数时,需要将请求参数包装成一个对象,然后将其作为 request 的参数进行调用,如下所示:
```
const param = { deptId: 1 };
request({
method:'get',
url:'/***',
params: param
}).then(res =>{
console.log(res)
})
```
希望这些修改能够帮助你解决问题。
阅读全文