Promise如何return
时间: 2023-10-27 13:59:05 浏览: 98
Promise扫盲贴
在Promise中,无法直接通过return来返回值。正确的使用方法是返回一个Promise对象,并在.then方法的执行体中处理异步请求得到的值,或者使用async/await语法。例如,在一个函数中返回Promise对象:
```javascript
function getGoodsList() {
return new Promise((resolve, reject) => {
// 异步请求代码
resolve('Success!');
});
}
// 调用函数并处理Promise对象
getGoodsList().then(result => {
console.log(result);
});
```
另外,如果在Promise中没有返回正确的值,可以通过.then方法中的参数来获取异步请求得到的值。例如:
```javascript
function getGoodsList() {
let result = '';
var p = new Promise((resolve, reject) => {
// 异步请求代码
resolve('this is goodslist');
});
p.then(value => {
// 处理异步请求得到的值
result = value;
});
return result;
}
// 调用函数并获取结果
result = getGoodsList();
console.log(result); // ""
```
请注意,在这个例子中,由于异步请求需要时间执行,所以在返回result之前,异步请求的结果还没有被赋值给result变量,所以结果是空字符串。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [将Promise.then中的值直接return出来调用](https://blog.csdn.net/weixin_45788691/article/details/125059984)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文