我想首先将第一个数字输入console.log,但事实并非如此.我究竟做错了什么?
谢谢.
let timer = function(time, message) {
setTimeout((time) => {
console.log(`ALERT: ${message}`);
}, time);
//return time;
}
const asyncDemo = async function asyncDemo(time, message) {
try {
var time1 = await timer(3000, "Number 1");
} catch (e) {
console.log("Critical error!");
}
try {
var time2 = await timer(1000, "Number 2");
} catch (e) {
console.log("Critical error!");
}
}
asyncDemo();
Run Code Online (Sandbox Code Playgroud)
Ansync/Await取决于承诺的工作.所以你的函数需要返回一个promise.例如:
let timer = function(time, message) {
return new Promise((resolve, reject) =>{
setTimeout((time) => {
console.log(`ALERT: ${message}`);
resolve()
}, time);
})
}
Run Code Online (Sandbox Code Playgroud)