簡體   English   中英

具有其他函數的返回值作為變量的函數,是否異步?

[英]Function with return value of other function as variable, async or not?

我有以下內容:

var module = {}
module.setDate = function() {
    var d = new Date();
    return d;
}

說我現在有:

function logDate(){
   var date = module.setDate();
   console.log(date)
   console.log('finished')
}

var date設置為module.setDate()的返回值是同步的還是異步的? 控制台可能看起來像:

undefined
'finished'

我認為您將函數調用與構造函數混淆了。

var d = new Date();

這將立即創建一個Date對象,這就是您的函數返回的內容。

另一方面,如果您的職能是

var module = {}
module.setDate = function() {
    return function() {
        var d = new Date();
        return d;
    }
}

這將是異步的,但不會並行執行。 返回的函數的執行將等到調用該函數。

function logDate(){
   var date = module.setDate();
   console.log(date() /* <--- need these parens, now! */)
   console.log('finished')
}

為了真正並行執行(我認為這是您要通過說“異步”來提出的問題),那么建議您閱讀這些鏈接之一。

暫無
暫無

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

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