Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 何谓';暂停';异步函数等待表达式时';暂停';执行?_Javascript_Angular_Asynchronous_Promise - Fatal编程技术网

Javascript 何谓';暂停';异步函数等待表达式时';暂停';执行?

Javascript 何谓';暂停';异步函数等待表达式时';暂停';执行?,javascript,angular,asynchronous,promise,Javascript,Angular,Asynchronous,Promise,我对Javascript中的异步性概念非常陌生,我想确保我没有误解我正在阅读的内容 在某些角度应用程序中考虑以下伪代码: async ngOnInit() { this.responseObject = await this.myService.myGetRequest(); //do some more stuff down here } 我的理解是,ngOnInit()将在wait时“暂停”或停止执行,并且在promise对象(数据)返回之前不会执行该行下面的代码?正确吗?await

我对Javascript中的异步性概念非常陌生,我想确保我没有误解我正在阅读的内容

在某些角度应用程序中考虑以下伪代码:

async ngOnInit() {

this.responseObject = await this.myService.myGetRequest();

//do some more stuff down here

}

我的理解是,ngOnInit()将在wait时“暂停”或停止执行,并且在promise对象(数据)返回之前不会执行该行下面的代码?正确吗?

await
async
函数中使用,等待
Promise
值的实现,或将变量转换为
Promise

是的,您是正确的。在使用
await
的前一行返回已实现的
Promise
或将值转换为
Promise
之前,不会执行下一行的代码


注意,尚不清楚模式是什么

await this.responseObject = await this.myService.myGetRequest();
预计将实现。第一个
wait
应该可以省略

this.responseObject = await this.myService.myGetRequest();

异步函数声明将返回一个承诺,该承诺使用函数调用返回的值进行解析

如果添加wait表达式,它将停止异步执行,并等待您承诺继续执行代码中的其他指令,以某种方式使其行为类似于“同步”函数


在这里阅读:

不是在承诺被返回之前,而是在它被解决之前,直到它被解决的数据可以被分配到属性。我不明白。return仅终止执行在我的情况下,一旦数据可用,get请求即被解析,否?您是否了解
然后
回调(或通常的异步回调)是如何工作的?抱歉,first Wait不是故意的。更正。