这是我的代码: -
function playAudio(sound,audioName)
{
sound = new Howl({
src: ['/audio/'+audioName]
});
sound.play();
return sound;
}
var sound;
setTimeout(playAudio,5000,sound,'smooth_criminal.mp3');
我正在将函数playAudio
传递给函数setTimeout
。 playAudio()
函数返回一个我想要捕获的值。有没有办法可以获得playAudio
的返回值。
我正在寻找类似于
的解决方案setTimeout(sound = playAudio,5000,sound,'smooth_criminal.mp3');
答案 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);