Tôi vừa hỏi về gọi chức năng theo tên, bây giờ tôi muốn xử lý return
tuyên bố sau SetTimeout
:Nhận giá trị trả về sau khi setTimeout
function ECall(funcName, arg)
{
command += "(";
for (var i=1; i<arguments.length; i++)
{
command += "'" + arguments[i] + "'";
if (i != arguments.length-1) command += ',';
}
command += ")";
//var funcPtr = eval(funcName);
//return funcPtr(arg); // This works, but I need SetTimeout
setTimeout('window[\'' + funcName + '\']' + command, 1000);
}
setTimeout
hoạt động tuyệt vời, nhưng tôi phải lưu giá trị trả lại chức năng gọi . Khi tôi viết: setTimeout('alert(window[\'' + funcName + '\']' + command + ')', 1000);
Nó cảnh báo giá trị trả về của hàm. Làm thế nào tôi có thể lưu trữ nó?
Bạn viết rằng nó không thể để có được giá trị trả về sau khi setTimeout, phải không? Có cách nào để làm điều đó không? – Ockonal
@Ockonal: Tôi đã sử dụng cảnh báo trong câu trả lời của mình, nhưng @Tim Down hiển thị cùng một khái niệm [trong câu trả lời của anh ấy] (http://stackoverflow.com/questions/5211103/get-return-value-after-settimeout/5211190# 5211190), nhưng lưu trữ kết quả trong một biến được xác định trước (đó là những gì bạn dường như muốn). Giá trị sẽ không có sẵn cho đến khi 'setTimeout' chạy tất nhiên. – user113716