代码之家  ›  专栏  ›  技术社区  ›  four-eyes

差异回调、承诺和事件JavaScript/React Native<->Java/Android

  •  1
  • four-eyes  · 技术社区  · 6 年前

    我在读关于 native modules 在React Native和Android中。 文件区分了

    我很难理解他们三人之间的区别。主要区别是什么?什么时候使用?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jonas Wilms    6 年前

    回调是一个传递给另一个函数的函数,当完成某个异步操作时,该函数将调用该函数:

    somethingAsync(function callback(result) { /*...*/ });
    

    您将经常看到这种模式,因为ilelse的一切都依赖于回调。但是,如果有很多回调,那么代码就很难读取和维护,特别是在处理循环时。为此,引入了Promises,它包装回调函数,并允许将回调附加到Promise。这允许一些很好的链接:

     const promise = new Promise(somethingAsync);
     promise.then(function result() { /*...*/ });
    

    注意,一个promise只解析一次,而回调可以调用多次。

    事件实际上与承诺没有关系,它们允许您将回调附加到发生事件时将被调用的对象,例如单击按钮:

     button.onclick = function(event) { /*...*/ }