从函数调用中读取Promise解析值可以通过两种方法实现。
方法一:使用async/await
使用async/await可以轻松地从Promise中读取解析值。在函数内部,使用await关键字等待Promise对象的解析值,然后将解析值赋给变量。
示例代码:
async function getValueFromPromise() {
const promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("Promise resolved"), 2000);
});
const value = await promise;
console.log(value); // 输出:Promise resolved
}
getValueFromPromise();
在上面的示例中,函数getValueFromPromise()中创建了一个Promise对象,并使用setTimeout模拟异步操作,2秒后将Promise解析为"Promise resolved"。使用await关键字等待promise解析值,并将其赋给变量value。最后,我们将value打印到控制台。
方法二:使用.then()方法链
如果不使用async/await,也可以通过使用.then()方法链来读取Promise解析值。在函数调用中,通过调用.then()方法,传入一个回调函数来处理Promise的解析值。
示例代码:
function getValueFromPromise() {
const promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("Promise resolved"), 2000);
});
promise.then(value => {
console.log(value); // 输出:Promise resolved
});
}
getValueFromPromise();
在上面的示例中,函数getValueFromPromise()中创建了一个Promise对象,并使用setTimeout模拟异步操作,2秒后将Promise解析为"Promise resolved"。然后,使用.then()方法链,将回调函数传递给该方法。当Promise解析时,回调函数将被调用,并且解析值将作为参数传递给回调函数。在回调函数中,我们将解析值打印到控制台。
需要注意的是,如果Promise被拒绝(rejected)而不是解析(resolved),则可以使用.catch()方法来处理拒绝的情况。
这是从函数调用中读取Promise解析值的两种常见方法。无论您选择使用async/await还是.then()方法链,都可以轻松地获取Promise的解析值。
领取专属 10元无门槛券
手把手带您无忧上云