簡體   English   中英

JavaScript 不等待 promise 解決

[英]JavaScript not waiting on promise to resolve

在下面的代碼中,我所追求的是在 setInterval 中完成計數后獲得警報。 雖然首先顯示警報,然后進行計數。 我做錯了什么?

 function function1() { return new Promise((resolve, reject) => { console.log('in function1 ') function2().then(resolve()); }); } function function2() { return new Promise((resolve, reject) => { var x = 0; I = setInterval(function() { console.log(x); if (x > 10) { clearInterval(I); resolve() }; x++ }, 100); }); } function1().then(alert('finished'));

Promise#then的第一個參數:

onFulfilled :如果 Promise 得到滿足,則調用 Function。 這個 function 有一個參數,滿足值。 如果它不是 function,它會在內部替換為“Identity”function(它返回接收到的參數)。

您可以傳遞 function 名稱或 function,如下所示:

 function function1() { return new Promise((resolve, reject) => { console.log('in function1 ') function2().then(resolve); // onFulfilled }); } function function2() { return new Promise((resolve, reject) => { var x = 0; I = setInterval(function() { console.log(x); if (x > 10) { clearInterval(I); resolve() }; x++ }, 100); }); } function1().then(() => alert('finished')); // onFulfilled

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM