first() {
setTimeout(() => console.log('I am First CALL afer 1 second'), 1000)
}
second() {
console.log("SEcond methof is called");
}
async getMoviesFromApi() {
try {
let response = await this.first() ;
let response2 = this.second() ;
} catch (error) {
console.error(error);
}
}
在这里,第二个函数应该在第一个函数之后调用,第一个函数将在1秒后打印,但第二个函数是直接调用的,它不是在等待第一个函数。请帮帮忙
发布于 2018-04-30 16:13:10
你不是在返回一个承诺,你只是在调用一个不是可等待的setTimeout
你应该这样做:
first() {
return new Promise(function (resolve, reject) {
setTimeout(() => {
console.log('I amFirest CAll afer 1 second');
resolve();
}, 1000)
});
}文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await
https://stackoverflow.com/questions/50096407
复制相似问题