在回调中返回promise对象要如何正确操作
时间: 2023-06-01 21:03:27 浏览: 121
详解ES6 Promise对象then方法链式调用
5星 · 资源好评率100%
在回调中返回promise对象时,需要确保在promise的resolve或reject函数中返回正确的值或错误信息,并且要确保promise对象的状态正确处理。以下是正确操作的示例代码:
```javascript
function fetchData(callback) {
return new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
const data = { name: 'John', age: 30 };
resolve(data);
}, 1000);
}).then((data) => {
return callback(null, data); // 正确返回结果
}).catch((err) => {
return callback(err); // 返回错误信息
});
}
// 调用fetchData
fetchData((err, data) => {
if (err) {
console.error(err);
} else {
console.log(data);
}
});
```
在上面的代码中,fetchData函数返回一个promise对象,在promise的resolve函数中调用callback函数并传递正确的结果,在reject函数中调用callback函数并传递错误信息。在调用fetchData函数时,根据callback函数的参数判断是否有错误信息,并处理正确的结果。可以看到,正确的操作可以使得代码更加清晰易懂,避免了回调地狱的情况。
阅读全文