Это работает, когда вы не помещаете new
перед Promise.resolve('hello')
.
Я добавил несколько строк в ваши строки, чтобы мы могли видеть, какая функция выводит каждую строку. Это поможет вам увидеть порядок вещей более четко.
Я использую console.log
вместо alert()
, так что вы можете увидеть все сразу, запустив фрагмент кода ниже:
<html>
<head>
<script>
async function getTested() {
console.log("getTested: line1");
let pp = await test1();
console.log(`getTested pp: ${pp}`); //expected to print hello
}
async function test1 () {
console.log(`test1: line 9`);
let promise = await test2();
console.log(`test1: ${promise}`); //expected to print hello
return promise;
}
async function test2 () {
console.log("test2: line 15");
let promise = Promise.resolve('hello');
console.log(`test2: ${await promise}`);
return promise;
}
</script>
</head>
<body onload="getTested()"></body>
</html>