我如何做到这一点?还是我理解了一些根本错误的东西?
const test = async function() {
console.log('hi 1');
await setTimeout(() => {
console.log('timout1')
}, 1000);
console.log('hi 2');
console.log('hi 3');
}
test()
后果
hi 1
hi 2
hi 3
timout1
预期结果
hi 1
timout1
hi 2
hi 3
我希望这段代码能帮助您理解async Wait。
function resolveAfter2Seconds() {
return new Promise(resolve => {
setTimeout(() => {
resolve('resolved');
}, 2000);
});
}
async function asyncCall() {
console.log('hi 1');
const result = await resolveAfter2Seconds();
console.log(result);
console.log('hi 2');
console.log('hi 3');
}
asyncCall();
您可以仅对promise使用wait
,并且setTimeout
函数不返回Promise。然而,你可以等待一个promise,这是解决使用setTimeout
这样会给你想要的结果。
因此,函数执行将停止,直到被wait
ed的promise得到解决或被拒绝,然后继续。
const test = async function() {
console.log('hi 1');
// return a new promise resolved after setTimeout callback is fired
await (new Promise((resolve, reject) => {
setTimeout(() => {
console.log('timout1')
resolve()
}, 1000)
}))
console.log('hi 2');
console.log('hi 3');
}
test()
假设我有以下内容: 然后我这样称呼它: 我省略了并且没有将声明为这一事实是否使它实际上是异步的? 我希望发生的情况是循环会立即完成,因为即使花费了很长时间,也不会被等待,并且会立即返回。 我认为这会导致文件内容在这样调用时被覆盖的问题,但这使我认为代码是以某种方式自动转换为同步代码的(尽管似乎不可能知道何时完成)。 那么,简单地说,从非异步方法调用函数是否会自动使代码同步执行,以及省略和(如在函数
问题内容: 我们正在与节点合作,主要用于内部项目,并了解使用该技术的最佳方法。 并非来自特定的异步背景,学习曲线可能是一个挑战,但是我们已经习惯了框架和学习过程。 使我们两极分化的是,何时才是使用同步代码与异步代码的最佳时间。我们目前使用的规则是,如果任何东西与IO进行交互,那么它必须通过回调或事件发射器(即给定的)是异步的,但是可以将任何未使用IO的其他项构造为同步函数(此方法还将取决于函数本身
问题内容: 我需要一些Scala和Java代码的代码示例(并且我也对此感到很好奇),这些示例表明Scala代码比用Java编写的代码更简单,简洁(当然,两个示例都应该解决相同的问题)。 如果只有Scala示例带有注释,例如“这是Scala中的抽象工厂,在Java中看起来会很麻烦”,那么这也是可以接受的。 谢谢! 我最喜欢的所有接受和这个答案 问题答案: 让我们改进堆栈器的示例,并使用Scala的c
当我在阅读有关承诺的文章时,我知道当我使用async/Await时,我可以同步打印承诺(在本例中为print:first,second,third,last to print)。现在我也读到了使用链接和异步/等待也可以达到同样的目的。然而,当我试图将我的承诺链接起来时,除了“最后一次打印”的console.log之外,什么也没有发生。任何洞察力都会很棒!谢谢!! 编辑到问题: 日志: 1:如果传递
异步代码是指当调用后不会立即完成的代码。 setTimeout(() => { console.log('do stuff'); }, 3000 ) 在 setTimeout 执行完3秒后 do stuff 会输出到控制台。我们可以看出当指定的时间过去后我们所提供的异步函数会触发。现在来看个更有启发性的示例: doWork( () => { console.log('call me whe
在C++中使用异步函数总是一个好主意吗? 我的意思是,很多时候,我们可能需要做一些简单的事情,比如做一个函数,返回天气,不是素数,等等,那么,这会使C++代码更快还是更慢呢? //示例代码 感谢阅读