这两个函数都返回一个Promise。那么这两种方法有什么区别?我不敢相信这只是个人喜好。
function somePromise(){
return new Promise((resolve, reject) => {
resolve(':D');
});
}
async function someAsync(){
return ':D';
}
答案 0 :(得分:2)
第二个功能使用了一种较新的语言功能,该功能可能并非在所有环境中都可用。就是这样。
new Promise
构造函数is still necessary用于在您具有尚未返回诺言的异步函数时创建诺言。当然,在您的特定示例中,您创建了一个promise,并立即用一个同步获得的值来解决它,因此您可以将return Promise.resolve(':D');
写为第三个选项。
答案 1 :(得分:0)
第一个函数是传统函数,它手动返回一个promise,该promise依次解析为:D
。
第二个函数是一个异步函数(因此是异步的)。异步函数默认情况下会返回promise,因此它也会返回promise。
总体而言,方法非常相似,除了可以从异步函数内部使用await以避免嵌套太多回调。使用异步的一个警告是,它不像第一个选项那样得到广泛支持。