如何在 JavaScript 中创建异步任务
How to create asynchronous tasks in JavaScript
如何执行这样的异步任务:
我想有两个任务:一个在 1 秒后打印“foo”,另一个在 2 秒后打印“bar”。
我希望它们同时启动,并且 运行 异步启动。
这是 python 中的一个示例:
async def main():
task1 = asyncio.create_task(
say_after(1, 'hello'))
task2 = asyncio.create_task(
say_after(2, 'world'))
print(f"started at {time.strftime('%X')}")
# Wait until both tasks are completed (should take
# around 2 seconds.)
await task1
await task2
print(f"finished at {time.strftime('%X')}")
如何在 JavaScript 中执行此类操作?我使用承诺吗?我不知道他们是如何工作的。我是 javascript
的“新手”
嗨!
你可以这样做:
async function hello() {
setTimeout(() => {}, 1000)
console.log("hello")
}
async function world() {
setTimeout(() => {}, 2000)
console.log("world")
}
async function main() {
await hello()
await world()
}
main()
让我知道这是否适合你!
好的,我明白了:
async function foo() {
return setTimeout(() => {
console.log("foo")
}, 1000);
}
async function bar() {
return setTimeout(() => {
console.log("bar")
}, 1500);
}
foo()
bar()
您可以使用 then
js promises 方法。
function timeout(time_ms) {
return new Promise(resolve => setTimeout(resolve, time_ms));
}
function main() {
timeout(1000).then(() => console.log("hello"))
timeout(2000).then(() => console.log("world"))
var d = new Date();
var n = d.toLocaleTimeString();
console.log(`started at ${n}`)
}
main()
如果你想擅长JavaScript,我强烈建议你不要使用async but Promise。
Promise是一个具有很强代数结构的表达式,而async-await则是规则复杂的语句。
如何执行这样的异步任务:
我想有两个任务:一个在 1 秒后打印“foo”,另一个在 2 秒后打印“bar”。 我希望它们同时启动,并且 运行 异步启动。
这是 python 中的一个示例:
async def main():
task1 = asyncio.create_task(
say_after(1, 'hello'))
task2 = asyncio.create_task(
say_after(2, 'world'))
print(f"started at {time.strftime('%X')}")
# Wait until both tasks are completed (should take
# around 2 seconds.)
await task1
await task2
print(f"finished at {time.strftime('%X')}")
如何在 JavaScript 中执行此类操作?我使用承诺吗?我不知道他们是如何工作的。我是 javascript
的“新手”嗨!
你可以这样做:
async function hello() {
setTimeout(() => {}, 1000)
console.log("hello")
}
async function world() {
setTimeout(() => {}, 2000)
console.log("world")
}
async function main() {
await hello()
await world()
}
main()
让我知道这是否适合你!
好的,我明白了:
async function foo() {
return setTimeout(() => {
console.log("foo")
}, 1000);
}
async function bar() {
return setTimeout(() => {
console.log("bar")
}, 1500);
}
foo()
bar()
您可以使用 then
js promises 方法。
function timeout(time_ms) {
return new Promise(resolve => setTimeout(resolve, time_ms));
}
function main() {
timeout(1000).then(() => console.log("hello"))
timeout(2000).then(() => console.log("world"))
var d = new Date();
var n = d.toLocaleTimeString();
console.log(`started at ${n}`)
}
main()
如果你想擅长JavaScript,我强烈建议你不要使用async but Promise。
Promise是一个具有很强代数结构的表达式,而async-await则是规则复杂的语句。