Javascript 有人能用async/await向我解释一下以下内容吗?
有人能详细解释一下这个代码吗Javascript 有人能用async/await向我解释一下以下内容吗?,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,有人能详细解释一下这个代码吗 const promiseFactory = () => new Promise(resolve => setTimeout(() => resolve(1), 5000)); 如果我将其称为以下内容: const consumer = async() => { promiseFactory().then(s => console.log(s)); console.log("next step"); } 将在5秒后输出“
const promiseFactory = () =>
new Promise(resolve => setTimeout(() => resolve(1), 5000));
如果我将其称为以下内容:
const consumer = async() => {
promiseFactory().then(s => console.log(s));
console.log("next step");
}
将在5秒后输出“下一步”
但如果我用下面的话来称呼它
const consumer = async() => {
const val = await promiseFactory();
console.log(val);
console.log("next step");
}
将输出1,然后是“下一步”
所以说到底,promises和async/await不仅仅是语法上的区别?您应该将
console.log(“下一步”)编码>到承诺的中,然后。Javascript不会停止执行。使用wait,您将首先等待,然后继续执行
const consumer = /* you don't need the async here */ () => {
promiseFactory().then(s => {
console.log(s));
console.log("next step");
}
}
您可以拨打promiseFactory
您可以调用`console.log(“下一步”)李>
在将来的某个时候,承诺会得到解决,您可以调用console.log
您可以promiseFactory
在将来的某个时候,承诺会得到解决,您可以调用console.log(val)
,然后调用console.log(“下一步”)
所以说到底,承诺和异步/等待不仅仅是语法上的区别
它们本质上是,您只是没有编写等价的代码
使用async
和wait
相当于:
const consumer = async () => {
promiseFactory().then(s => {
console.log(s);
console.log("next step");
);
};
const consumer = async() => {
doAsyncStuff();
console.log("next step");
}
const doAsyncStuff = async () {
const s = await promiseFactory();
console.log(s)
}
所有代码都在之后,等待的回调中的,然后
,而不仅仅是下一行
您使用则
相当于:
const consumer = async () => {
promiseFactory().then(s => {
console.log(s);
console.log("next step");
);
};
const consumer = async() => {
doAsyncStuff();
console.log("next step");
}
const doAsyncStuff = async () {
const s = await promiseFactory();
console.log(s)
}
这里有一个很好的讨论:感谢您的回答,我知道这一点,我的问题是,如何使用async/await将等效代码写入上面的代码块?