Javascript 异步函数如何返回最终值?

Javascript 异步函数如何返回最终值?,javascript,Javascript,当我使用Dojo框架创建一个类时,该类有一个使用异步函数的方法,我还能做些什么使它只返回最终值,而不返回承诺或其他值?您必须使用回调函数,例如: function myDojoFunction(id, callback) { require(['dojo/dom'], function (dom) { if (dom.byId(id)) callback (true); }); } 调用函数: myDojoFunction('myId', function (exist

当我使用Dojo框架创建一个类时,该类有一个使用异步函数的方法,我还能做些什么使它只返回最终值,而不返回承诺或其他值?

您必须使用回调函数,例如:

function myDojoFunction(id, callback) {
   require(['dojo/dom'], function (dom) {
      if (dom.byId(id)) callback (true);
   });
}
调用函数:

myDojoFunction('myId', function (exists) {
   if (exists) console.log('i'm here');
   else console.log('i'm not here');
});

如果您使用的是dojo AMD而不是legacy,那么这就是返回内容的方法。

您不能将异步函数转为同步函数-EverReal无法解决它?真的,异步函数(例如异步XMLHttpRequest)不能变为同步-实际上很明显为什么YXMlHttpRequest可能是一个坏例子,因为它可以是同步的-只是异步表单不能同步返回结果