JS Promise を中で作って Promise を返すファンクション await ありなしの動作の差

(コメント)

resolveされるかされないか。

/**
* なにかプロミスがあって
* @returns {Promise<string>}
*/
function anyPromise(label) {
return new Promise((resolve, reject) => {
console.log(label, 'resolve');
resolve('succes.');
});
}

/**
* ケース1
* await してプロミス返す
* @returns {Promise<string>}
*/
async function awaitPromiseReturn() {
return await anyPromise('await:');
}

/**
* ケース2
* そのままプロミス返す
* @returns {Promise<string>}
*/
function promiseReturn() {
return anyPromise('no-await:');
}

{
const p = awaitPromiseReturn();
console.log('await:', p);

p.then((text) => {
console.log('await:', text);
});
}

{
const p = promiseReturn();
console.log('no-await:', p);

p.then((text) => {
console.log('no-await:', text);
});
}
// 結果
await: resolve
await: Promise { <pending> }
no-await: resolve
no-await: Promise { 'succes.' }
no-await: succes.
await: succes.
現在未評価

コメント

最近のツイート

  • ytyng

    ytyng @ytyng

    俺もスタバアプリにログインできないよ
    5 ヶ月, 2 週間 前

  • 安藤拓郎 Takuro Ando

    安藤拓郎 Takuro Ando @takuroando

    ytyng

    これまでいろんなグッズを作ってきたけど、今回は「お米」と聞いて買うしかないなと。今夜の夕食はコシヒカリ!箸もセットだし^^ https://t.co/01ucQx9qtw #腰乃展 #マンガ展 https://t.co/4VL2vOe0Og
    6 ヶ月 前

  • ytyng

    ytyng @ytyng

    講談社さんとやった全部入り電子書籍セットがギネスブックに登録されたよー https://t.co/rbkd3IYub0
    6 ヶ月 前