我试图在Node.js callback
与promise_then
与async_await
之间进行比较,发现callback
是最快的。是真的吗不知道我是否正确地解决了这个问题。
我已经为所有三个add
,callback
和promise_then
创建了async_await
函数。当以下代码在节点中运行并且结果打印为console.log
时,即使我已经安排了函数调用以使callback
最后被调用,promise_then
首先打印,然后是async_await
,最后是callback
。 。
// promise_then
const add_promise = (a, b) => {
return new Promise((resolve, reject) => {
resolve(a + b)
})
}
// async_await
const add_async_await = async() => {
const sum = await add_promise(1, 99)
const sum2 = await add_promise(sum, 50)
const sum3 = await add_promise(sum2, 3)
return sum3
}
// callback
function add_callback(a, b, callback) {
callback(a + b)
}
add_async_await().then((result) => {
console.log('result await', result) // await third fastest (3)??
}).catch((e) => {
console.log('e', e)
})
add_promise(1,99).then((sum) => {
add_promise(sum, 50).then((sum2) => {
add_promise(sum2, 3).then((sum3) => {
console.log('result promise', sum3) // promise second fastest (2)??
})
})
})
add_callback(1, 99, function(sum) {
add_callback(sum, 50, function(sum2) {
add_callback(sum2, 3, function(sum3) {
console.log('result callback', sum3) // callback fastest (1)??
})
})
})
上面的代码输出以下内容:
result callback 153
result promise 153
result await 153
给出输出顺序,是否表示callback
最快,然后是promise
,最后是await
?还是console.log
的顺序无关紧要?
您应该考虑一些要点,然后您才能理解。