如何从作为javascript中的参数传递给另一个函数的函数返回一个值?

时间:2016-07-09 13:49:22

标签: javascript function

这是我的代码: -

    function playAudio(sound,audioName)
    {
        sound = new Howl({
            src: ['/audio/'+audioName]
        });
        sound.play();
        return sound;
    }

    var sound;
    setTimeout(playAudio,5000,sound,'smooth_criminal.mp3');

我正在将函数playAudio传递给函数setTimeoutplayAudio()函数返回一个我想要捕获的值。有没有办法可以获得playAudio的返回值。

我正在寻找类似于

的解决方案
setTimeout(sound = playAudio,5000,sound,'smooth_criminal.mp3');

1 个答案:

答案 0 :(得分:1)

你可以这样做:

setTimeout(function () {
    var sound = playAudio(sound,'smooth_criminal.mp3');
    // do something with sound....
}, 5000);

当您将其传递给setTimeout时,会动态创建一个匿名函数。在其中,您可以编写您想要的所有代码......

请确保在调用sound时使用playAudio 的值,因此在该匿名函数中。

例如,这不会像人们预期的那样起作用:

var sound;
setTimeout(function () {
    sound = playAudio(sound,'smooth_criminal.mp3');
}, 5000);
// not the right place to do something with sound....
// as it is not available yet.
console.log(sound);