Javascript 在Node.js SDK中编写异步函数的首选方法
我在一些地方读到,在Node.js中编写异步函数的经典方式/惯例是。我正在为Node.js用户编写一个开源SDK,这仍然是一条路要走,还是应该改为使用async/await?async/await功能更强大。我同意,它在ES6中:Javascript 在Node.js SDK中编写异步函数的首选方法,javascript,node.js,async-await,Javascript,Node.js,Async Await,我在一些地方读到,在Node.js中编写异步函数的经典方式/惯例是。我正在为Node.js用户编写一个开源SDK,这仍然是一条路要走,还是应该改为使用async/await?async/await功能更强大。我同意,它在ES6中: async function thisThrows() { throw new Error("Thrown from thisThrows()"); } async function run() { try { a
async function thisThrows() {
throw new Error("Thrown from thisThrows()");
}
async function run() {
try {
await thisThrows();
} catch (e) {
console.error(e);
} finally {
console.log('We do cleanup here');
}
}
run();
无论如何,我个人用这个:
async function test() {
try {
await stuff()
} catch (error) {
console.error('Something went wrong!\n', error.stack, '\n')
throw error
}
}
Javascript中的现代异步API设计是在异步操作完成时返回解析或拒绝的承诺,因为承诺比普通回调更容易管理异步代码和错误流,特别是当代码流中存在异步操作序列时 大多数新设计的nodejs API都是使用promise接口设计的,而nodejs中大多数较旧的回调风格接口都为promise接口添加了一个选项。转向promises显然是Javascript异步编程的一种趋势,这对于NodeJ来说是绝对的 这允许调用者使用
async/await
或.then().catch()
-他们的选择
请注意,您的API设计并不特别“符合”async/await
。这取决于打电话的人。如果您从API返回承诺,那么调用方可以选择使用async/await
或.then().catch()
,如果他们愿意的话