Javascript 当我在object literal中使用Wait时,程序如何运行?
当我编写一个返回一个对象的函数,但该对象的每个值都是通过解析承诺来构造的时,我最终会得到什么?我的意思是,对象的值的类型是什么Javascript 当我在object literal中使用Wait时,程序如何运行?,javascript,async-await,object-literal,ecma,Javascript,Async Await,Object Literal,Ecma,当我编写一个返回一个对象的函数,但该对象的每个值都是通过解析承诺来构造的时,我最终会得到什么?我的意思是,对象的值的类型是什么 async foo(){ 返回{ p1:等待取数http://dummy.restapiexample.com/api/v1/employees')//获取请求, p2:等待获取http://dummy.restapiexample.com/api/v1/employees')//获取请求 } } 对于这样一个流,p2会在p1之后被解析吗?此代码的工作原理是否与以下示
async foo(){
返回{
p1:等待取数http://dummy.restapiexample.com/api/v1/employees')//获取请求,
p2:等待获取http://dummy.restapiexample.com/api/v1/employees')//获取请求
}
}
对于这样一个流,p2
会在p1
之后被解析吗?此代码的工作原理是否与以下示例相同:
async foo(){
常量p1=等待取数('http://dummy.restapiexample.com/api/v1/employees')//获取请求
const p2=等待取数('http://dummy.restapiexample.com/api/v1/employees')//获取请求
返回{
p1,
p2
}
}
谢谢大家! 看着
承诺是在创建承诺时不一定知道的值的代理。它允许您将处理程序与异步操作的最终成功值或失败原因相关联。这使得异步方法可以像同步方法一样返回值:异步方法不会立即返回最终值,而是返回在将来某个时候提供值的承诺
p1和p2在两个示例中都返回了一个承诺。感谢您打电话给我,让我澄清您的问题(!)。我会尽我最大的努力来解释你的问题。我很想简单地删除这个答案。这可能有用,也可能没用 如果使用
async
方法伪造任何“FETCH REQUEST”(获取请求),该方法在控制台启动时简单地打印到控制台,在它(async)解析之前,您可以非常清楚地看到它将在启动p2
之前完成p1
。运行几次可以确认这一点,因为对p1
和p2
的调用不会交错
异步函数foo(){
返回{
p1:Wait randomAsyncMethod(“p1”),
p2:等待随机异步方法(“p2”)
}
}
异步函数随机异步方法(which){
log(“启动”,其中);
返回新承诺(解决=>
设置超时(()=>{
console.log(“解析”,其中);
解决();
},Math.random()*1000)
);
}
foo()代码>我正试图举例说明。我已经编辑了我的问题,很抱歉解释不好。
wait FETCH REQUEST
不是有效的javascript,因此我们无法告诉您返回类型将是什么be@Jamiec谢谢你非常有帮助的回答(!)我只是想学点东西,你指出了一个毫无意义的观点。你真的不明白我为什么问吗?好的,我会尽量用更清楚的方式问我的问题。谢谢!我真的很高兴你回答了我的问题,我想不出这样的例子,所以我自己也解决不了。也许是我累了,或者是因为我的英语不好,idk。无论如何,我很高兴。再次感谢:)@keskinsaf给未来的你的提示:如果有人要你澄清你的问题,不要防备。试图猜测人们的真正意思,然后弄错,兜圈子,这会让人感到非常厌烦。不客气,很高兴我能帮忙。我不明白你要我澄清我的问题,但我明白你的意思。在问下一个问题之前,我会付出更多的努力:)再次感谢:)