📅  最后修改于: 2023-12-03 14:58:29.947000             🧑  作者: Mango
本题考察对JavaScript中Promise的理解和运用。
给定两个异步函数funcA
和funcB
,它们的作用是向服务器发送请求并返回一个Promise,其中funcB
依赖于funcA
的结果。请编写一个函数result()
,使用Promise解决异步函数之间的依赖关系,确保在funcA
和funcB
成功执行后,函数result()
能够返回它们的结果。
function funcA() {
return new Promise((resolve) =>
setTimeout(() => resolve(10), 1000)
);
}
function funcB(number) {
return new Promise((resolve) =>
setTimeout(() => resolve(number * 2), 2000)
);
}
function result() {
// 在此处编写代码
}
result().then(console.log); // 20
在运用Promise解决异步函数依赖关系时,需要注意以下几点:
对于题目中提供的两个异步函数,funcB
依赖于funcA
的结果,因此需要先执行funcA
,再将结果传递给funcB
。代码如下:
function result() {
return new Promise((resolve) => {
funcA().then((result) => {
funcB(result).then((result) => {
resolve(result);
});
});
});
}
首先以new Promise()
的形式返回一个新的Promise实例,通过funcA()
来获取结果,在funcA()
返回的Promise对象上使用then()
方法来获取异步操作的结果。一旦funcA()
成功地返回结果,我们就可以调用funcB()
,将funcA()
返回的值作为参数传递给funcB()
。在获取funcB()
返回的Promise对象后,再次使用then()
方法来获取异步操作的结果,并在成功时调用resolve()
方法,以确定我们返回的Promise对象的状态和值。
最后,在代码的最后,你可以通过将result()
函数调用传递给then()
方法,来打印结果到控制台上。
通过这个题目的解答,我们学习到了如何运用Promise来解决异步函数之间的依赖关系。在实际开发过程中,我们会经常需要处理类似的问题,使用Promise可以提高代码的可读性和可维护性,让运行流程更加清晰。