【发布时间】:2021-11-26 17:16:30
【问题描述】:
我不知道这是否可能,但我真的很想强制一个正常的函数停止并等待一个异步函数。这是一个简单的例子:
function draw_a_cat(){
draw_cat_body();
// get_head_information is asynchronous, and I want to STOP execution and wait for it to get info we need in order to draw the cat.
wait for get_head_information();
draw_head();
display_cat_name();
return true;
}
cat_drawn_yet = draw_a_cat();
console.log("drawn")!
我实际上并没有画猫,但我需要知道如何做到这一点。我不想draw_a_cat 等待get_head_information,这意味着draw_cat 在获得头部信息并绘制头部之前不会返回。获取头部信息后才会绘制头部,这样我们才能正确绘制头部。
而且,console.log 不会发生,直到猫被完全绘制和cat_drawn_yet == "true"。 draw_a_cat 不是异步函数,这意味着它不能只是 await get_head_information()。
我希望程序在正常继续之前停止并等待异步 get_head_information。我知道冻结其他所有内容,等待get_head_information 听起来很愚蠢,但我需要在更复杂的项目中执行此操作,这样才有意义。
【问题讨论】:
-
那么 get_head_information 会返回一个承诺吗?是异步的吗?您需要共享该代码
-
这是不可能的 - 阅读:stackoverflow.com/a/47227878/4800344
标签: javascript async-await wait