0
我想知道js承諾如何在內部工作。JS Promises如何在內部工作?
我google了,但我找不到答案(或者我不知道如何谷歌)。
我不知道它是如何回到你身邊的。
比方說我有這樣的客戶端代碼:
function whatever() {
doSomethingLocally;
callPromiseThatGoesAllOverTheWorldAndThenGetsBackToYou()
.then(
doSomethingLocallyAgain
);
doSomeOtherThingLocally;
}
我想知道怎麼回事,許被滿足時,它就會回到正確的點代碼(即「doSomethingLocallyAgain」)。
儘管規範[描述他們如何_](http://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects),他們實際上在內部是如何工作的規範的實現者(即JavaScript引擎)。是否有一個你問這個問題的根本原因,或許這可能是一個更好的問題? –
我在問這個,因爲我不知道流程是如何回到那一點。 我不知道是否有一個套接字一直在用指針監聽某個東西,所以當它接收到響應時,它會將流程改變爲該點。 –
'doSomethingLocallyAgain'必須是一個函數。您正在將該函數傳遞給promise,並在完成後簡單地調用該函數。沒有什麼神奇的。這裏是回調函數的簡化示例:'function do(f){setTimeout(()=> {/ *做一些內部的東西*/f();},3000); }; (()=> console.log('call me maybe'));'。在這個例子中,'do'接受一個函數並在準備就緒時調用它。 –